{
  "experimental": {
    "anyDefinition": {
      "docString": "",
      "isOptional": false,
      "validator": {
        "allowNull": false,
        "strict": false
      },
      "sql": {},
      "type": "object",
      "group": "experimental",
      "name": "anyDefinition",
      "relations": [],
      "keys": {
        "type": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string",
          "oneOf": ["any"]
        },
        "group": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "name": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "docString": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 0
          },
          "sql": {},
          "type": "string",
          "defaultValue": "\"\""
        },
        "isOptional": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false
          },
          "sql": {},
          "type": "boolean",
          "defaultValue": "false"
        },
        "defaultValue": {
          "docString": "",
          "isOptional": true,
          "validator": {},
          "sql": {},
          "type": "anyOf",
          "values": [
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false,
                "trim": false,
                "lowerCase": false,
                "upperCase": false,
                "min": 1
              },
              "sql": {},
              "type": "string"
            },
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false,
                "floatingPoint": false,
                "min": -9007199254740991,
                "max": 9007199254740991
              },
              "sql": {},
              "type": "number"
            }
          ]
        },
        "sql": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "defaultValue": "{}",
          "keys": {
            "primary": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "searchable": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "hasDefaultValue": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            }
          }
        },
        "validator": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "keys": {
            "allowNull": {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            }
          }
        },
        "targets": {
          "docString": "Support different 'any' behaviours for different targets. All targets are optional and will be tried from most specific to least specific.",
          "isOptional": true,
          "validator": {},
          "sql": {},
          "type": "generic",
          "keys": {
            "type": "reference",
            "docString": "",
            "isOptional": false,
            "sql": {},
            "validator": {},
            "reference": {
              "group": "experimental",
              "name": "anyDefinitionTarget"
            }
          },
          "values": {
            "docString": "",
            "isOptional": false,
            "validator": {
              "allowNull": false,
              "strict": true
            },
            "sql": {},
            "type": "object",
            "relations": [],
            "keys": {
              "validatorInputType": {
                "docString": "",
                "isOptional": false,
                "validator": {
                  "convert": false,
                  "allowNull": false,
                  "trim": false,
                  "lowerCase": false,
                  "upperCase": false,
                  "min": 1
                },
                "sql": {},
                "type": "string"
              },
              "validatorOutputType": {
                "docString": "",
                "isOptional": false,
                "validator": {
                  "convert": false,
                  "allowNull": false,
                  "trim": false,
                  "lowerCase": false,
                  "upperCase": false,
                  "min": 1
                },
                "sql": {},
                "type": "string"
              },
              "validatorExpression": {
                "docString": "Expression that synchronously resolves to a boolean. Should be 'true' if the input is valid, and 'false' otherwise. Interpolates '$value$' with the current property that is being validated",
                "isOptional": true,
                "validator": {
                  "convert": false,
                  "allowNull": false,
                  "trim": false,
                  "lowerCase": false,
                  "upperCase": false,
                  "min": 1
                },
                "sql": {},
                "type": "string"
              },
              "validatorImport": {
                "docString": "A raw import that is added to the files where the provided validator expression is used.",
                "isOptional": true,
                "validator": {
                  "convert": false,
                  "allowNull": false,
                  "trim": false,
                  "lowerCase": false,
                  "upperCase": false,
                  "min": 1
                },
                "sql": {},
                "type": "string"
              }
            }
          }
        },
        "rawValue": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "rawValueImport": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "keys": {
            "javaScript": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false,
                "trim": false,
                "lowerCase": false,
                "upperCase": false,
                "min": 1
              },
              "sql": {},
              "type": "string"
            },
            "typeScript": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false,
                "trim": false,
                "lowerCase": false,
                "upperCase": false,
                "min": 1
              },
              "sql": {},
              "type": "string"
            }
          }
        },
        "rawValidator": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "rawValidatorImport": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "keys": {
            "javaScript": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false,
                "trim": false,
                "lowerCase": false,
                "upperCase": false,
                "min": 1
              },
              "sql": {},
              "type": "string"
            },
            "typeScript": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false,
                "trim": false,
                "lowerCase": false,
                "upperCase": false,
                "min": 1
              },
              "sql": {},
              "type": "string"
            }
          }
        }
      }
    },
    "anyDefinitionTarget": {
      "docString": "",
      "isOptional": false,
      "validator": {
        "convert": false,
        "allowNull": false,
        "trim": false,
        "lowerCase": false,
        "upperCase": false,
        "min": 1
      },
      "sql": {},
      "type": "string",
      "group": "experimental",
      "name": "anyDefinitionTarget",
      "oneOf": [
        "js",
        "ts",
        "jsKoaReceive",
        "jsKoaSend",
        "jsPostgres",
        "jsAxios",
        "tsAxios",
        "jsAxiosNode",
        "tsAxiosBrowser",
        "tsAxiosReactNative",
        "jsFetch",
        "tsFetch",
        "jsFetchNode",
        "tsFetchBrowser",
        "tsFetchReactNative"
      ]
    },
    "anyOfDefinition": {
      "docString": "",
      "isOptional": false,
      "validator": {
        "allowNull": false,
        "strict": false
      },
      "sql": {},
      "type": "object",
      "group": "experimental",
      "name": "anyOfDefinition",
      "relations": [],
      "keys": {
        "type": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string",
          "oneOf": ["anyOf"]
        },
        "group": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "name": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "docString": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 0
          },
          "sql": {},
          "type": "string",
          "defaultValue": "\"\""
        },
        "isOptional": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false
          },
          "sql": {},
          "type": "boolean",
          "defaultValue": "false"
        },
        "defaultValue": {
          "docString": "",
          "isOptional": true,
          "validator": {},
          "sql": {},
          "type": "anyOf",
          "values": [
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false,
                "trim": false,
                "lowerCase": false,
                "upperCase": false,
                "min": 1
              },
              "sql": {},
              "type": "string"
            },
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false,
                "floatingPoint": false,
                "min": -9007199254740991,
                "max": 9007199254740991
              },
              "sql": {},
              "type": "number"
            }
          ]
        },
        "sql": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "defaultValue": "{}",
          "keys": {
            "primary": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "searchable": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "hasDefaultValue": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            }
          }
        },
        "validator": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "defaultValue": "{}",
          "keys": {
            "discriminant": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false,
                "trim": false,
                "lowerCase": false,
                "upperCase": false,
                "min": 1
              },
              "sql": {},
              "type": "string"
            }
          }
        },
        "values": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "convert": false,
            "min": 1
          },
          "sql": {},
          "type": "array",
          "values": {
            "docString": "",
            "isOptional": false,
            "validator": {},
            "sql": {},
            "type": "reference",
            "reference": {
              "group": "experimental",
              "name": "typeSystemDefinition",
              "uniqueName": "ExperimentalTypeSystemDefinition"
            }
          }
        }
      }
    },
    "arrayDefinition": {
      "docString": "",
      "isOptional": false,
      "validator": {
        "allowNull": false,
        "strict": false
      },
      "sql": {},
      "type": "object",
      "group": "experimental",
      "name": "arrayDefinition",
      "relations": [],
      "keys": {
        "type": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string",
          "oneOf": ["array"]
        },
        "group": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "name": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "docString": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 0
          },
          "sql": {},
          "type": "string",
          "defaultValue": "\"\""
        },
        "isOptional": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false
          },
          "sql": {},
          "type": "boolean",
          "defaultValue": "false"
        },
        "defaultValue": {
          "docString": "",
          "isOptional": true,
          "validator": {},
          "sql": {},
          "type": "anyOf",
          "values": [
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false,
                "trim": false,
                "lowerCase": false,
                "upperCase": false,
                "min": 1
              },
              "sql": {},
              "type": "string"
            },
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false,
                "floatingPoint": false,
                "min": -9007199254740991,
                "max": 9007199254740991
              },
              "sql": {},
              "type": "number"
            }
          ]
        },
        "sql": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "defaultValue": "{}",
          "keys": {
            "primary": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "searchable": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "hasDefaultValue": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            }
          }
        },
        "validator": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "keys": {
            "convert": {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "min": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false,
                "floatingPoint": false,
                "min": 0,
                "max": 9007199254740991
              },
              "sql": {},
              "type": "number"
            },
            "max": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false,
                "floatingPoint": false,
                "min": 0,
                "max": 9007199254740991
              },
              "sql": {},
              "type": "number"
            }
          }
        },
        "values": {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "typeSystemDefinition",
            "uniqueName": "ExperimentalTypeSystemDefinition"
          }
        }
      }
    },
    "booleanDefinition": {
      "docString": "",
      "isOptional": false,
      "validator": {
        "allowNull": false,
        "strict": false
      },
      "sql": {},
      "type": "object",
      "group": "experimental",
      "name": "booleanDefinition",
      "relations": [],
      "keys": {
        "type": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string",
          "oneOf": ["boolean"]
        },
        "group": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "name": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "docString": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 0
          },
          "sql": {},
          "type": "string",
          "defaultValue": "\"\""
        },
        "isOptional": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false
          },
          "sql": {},
          "type": "boolean",
          "defaultValue": "false"
        },
        "defaultValue": {
          "docString": "",
          "isOptional": true,
          "validator": {},
          "sql": {},
          "type": "anyOf",
          "values": [
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false,
                "trim": false,
                "lowerCase": false,
                "upperCase": false,
                "min": 1
              },
              "sql": {},
              "type": "string"
            },
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false,
                "floatingPoint": false,
                "min": -9007199254740991,
                "max": 9007199254740991
              },
              "sql": {},
              "type": "number"
            }
          ]
        },
        "sql": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "defaultValue": "{}",
          "keys": {
            "primary": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "searchable": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "hasDefaultValue": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            }
          }
        },
        "validator": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "keys": {
            "convert": {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "allowNull": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean",
              "defaultValue": "false"
            }
          }
        },
        "oneOf": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false
          },
          "sql": {},
          "type": "boolean"
        }
      }
    },
    "crudDefinition": {
      "docString": "",
      "isOptional": false,
      "validator": {
        "allowNull": false,
        "strict": false
      },
      "sql": {},
      "type": "object",
      "group": "experimental",
      "name": "crudDefinition",
      "relations": [],
      "keys": {
        "type": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string",
          "oneOf": ["crud"]
        },
        "group": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "name": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "docString": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 0
          },
          "sql": {},
          "type": "string",
          "defaultValue": "\"\""
        },
        "isOptional": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false
          },
          "sql": {},
          "type": "boolean",
          "defaultValue": "false"
        },
        "defaultValue": {
          "docString": "",
          "isOptional": true,
          "validator": {},
          "sql": {},
          "type": "anyOf",
          "values": [
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false,
                "trim": false,
                "lowerCase": false,
                "upperCase": false,
                "min": 1
              },
              "sql": {},
              "type": "string"
            },
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false,
                "floatingPoint": false,
                "min": -9007199254740991,
                "max": 9007199254740991
              },
              "sql": {},
              "type": "number"
            }
          ]
        },
        "sql": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "defaultValue": "{}",
          "keys": {
            "primary": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "searchable": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "hasDefaultValue": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            }
          }
        },
        "validator": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "defaultValue": "{}",
          "keys": {}
        },
        "basePath": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "entity": {
          "docString": "",
          "isOptional": true,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "referenceDefinition",
            "uniqueName": "ExperimentalReferenceDefinition"
          }
        },
        "fromParent": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "keys": {
            "field": {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false,
                "trim": false,
                "lowerCase": false,
                "upperCase": false,
                "min": 1
              },
              "sql": {},
              "type": "string"
            },
            "options": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "allowNull": false,
                "strict": false
              },
              "sql": {},
              "type": "object",
              "relations": [],
              "keys": {
                "name": {
                  "docString": "",
                  "isOptional": true,
                  "validator": {
                    "convert": false,
                    "allowNull": false,
                    "trim": false,
                    "lowerCase": false,
                    "upperCase": false,
                    "min": 1
                  },
                  "sql": {},
                  "type": "string"
                }
              }
            }
          }
        },
        "routeOptions": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "keys": {
            "listRoute": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "singleRoute": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "createRoute": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "updateRoute": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "deleteRoute": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            }
          }
        },
        "fieldOptions": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "keys": {
            "readable": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "allowNull": false,
                "strict": false
              },
              "sql": {},
              "type": "object",
              "relations": [],
              "keys": {
                "$omit": {
                  "docString": "",
                  "isOptional": true,
                  "validator": {
                    "convert": false
                  },
                  "sql": {},
                  "type": "array",
                  "values": {
                    "docString": "",
                    "isOptional": false,
                    "validator": {
                      "convert": false,
                      "allowNull": false,
                      "trim": false,
                      "lowerCase": false,
                      "upperCase": false,
                      "min": 1
                    },
                    "sql": {},
                    "type": "string"
                  }
                },
                "$pick": {
                  "docString": "",
                  "isOptional": true,
                  "validator": {
                    "convert": false
                  },
                  "sql": {},
                  "type": "array",
                  "values": {
                    "docString": "",
                    "isOptional": false,
                    "validator": {
                      "convert": false,
                      "allowNull": false,
                      "trim": false,
                      "lowerCase": false,
                      "upperCase": false,
                      "min": 1
                    },
                    "sql": {},
                    "type": "string"
                  }
                }
              }
            },
            "readableType": {
              "docString": "",
              "isOptional": true,
              "validator": {},
              "sql": {},
              "type": "reference",
              "reference": {
                "group": "experimental",
                "name": "referenceDefinition",
                "uniqueName": "ExperimentalReferenceDefinition"
              }
            },
            "writable": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "allowNull": false,
                "strict": false
              },
              "sql": {},
              "type": "object",
              "relations": [],
              "keys": {
                "$omit": {
                  "docString": "",
                  "isOptional": true,
                  "validator": {
                    "convert": false
                  },
                  "sql": {},
                  "type": "array",
                  "values": {
                    "docString": "",
                    "isOptional": false,
                    "validator": {
                      "convert": false,
                      "allowNull": false,
                      "trim": false,
                      "lowerCase": false,
                      "upperCase": false,
                      "min": 1
                    },
                    "sql": {},
                    "type": "string"
                  }
                },
                "$pick": {
                  "docString": "",
                  "isOptional": true,
                  "validator": {
                    "convert": false
                  },
                  "sql": {},
                  "type": "array",
                  "values": {
                    "docString": "",
                    "isOptional": false,
                    "validator": {
                      "convert": false,
                      "allowNull": false,
                      "trim": false,
                      "lowerCase": false,
                      "upperCase": false,
                      "min": 1
                    },
                    "sql": {},
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "inlineRelations": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "convert": false
          },
          "sql": {},
          "type": "array",
          "values": {
            "docString": "",
            "isOptional": false,
            "validator": {},
            "sql": {},
            "type": "reference",
            "reference": {
              "group": "experimental",
              "name": "crudDefinition",
              "uniqueName": "ExperimentalCrudDefinition"
            }
          }
        },
        "nestedRelations": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "convert": false
          },
          "sql": {},
          "type": "array",
          "values": {
            "docString": "",
            "isOptional": false,
            "validator": {},
            "sql": {},
            "type": "reference",
            "reference": {
              "group": "experimental",
              "name": "crudDefinition",
              "uniqueName": "ExperimentalCrudDefinition"
            }
          }
        }
      }
    },
    "dateDefinition": {
      "docString": "",
      "isOptional": false,
      "validator": {
        "allowNull": false,
        "strict": false
      },
      "sql": {},
      "type": "object",
      "group": "experimental",
      "name": "dateDefinition",
      "relations": [],
      "keys": {
        "type": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string",
          "oneOf": ["date"]
        },
        "group": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "name": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "docString": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 0
          },
          "sql": {},
          "type": "string",
          "defaultValue": "\"\""
        },
        "isOptional": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false
          },
          "sql": {},
          "type": "boolean",
          "defaultValue": "false"
        },
        "defaultValue": {
          "docString": "",
          "isOptional": true,
          "validator": {},
          "sql": {},
          "type": "anyOf",
          "values": [
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false,
                "trim": false,
                "lowerCase": false,
                "upperCase": false,
                "min": 1
              },
              "sql": {},
              "type": "string"
            },
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false,
                "floatingPoint": false,
                "min": -9007199254740991,
                "max": 9007199254740991
              },
              "sql": {},
              "type": "number"
            }
          ]
        },
        "sql": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "defaultValue": "{}",
          "keys": {
            "primary": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "searchable": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "hasDefaultValue": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            }
          }
        },
        "validator": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "keys": {
            "allowNull": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean",
              "defaultValue": "false"
            },
            "min": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "allowNull": false
              },
              "sql": {},
              "type": "date"
            },
            "max": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "allowNull": false
              },
              "sql": {},
              "type": "date"
            },
            "inFuture": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "inPast": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            }
          }
        },
        "specifier": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string",
          "oneOf": ["dateOnly", "timeOnly"]
        }
      }
    },
    "extendDefinition": {
      "docString": "",
      "isOptional": false,
      "validator": {
        "allowNull": false,
        "strict": false
      },
      "sql": {},
      "type": "object",
      "group": "experimental",
      "name": "extendDefinition",
      "relations": [],
      "keys": {
        "type": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string",
          "oneOf": ["extend"]
        },
        "group": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "name": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "docString": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 0
          },
          "sql": {},
          "type": "string",
          "defaultValue": "\"\""
        },
        "isOptional": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false
          },
          "sql": {},
          "type": "boolean",
          "defaultValue": "false"
        },
        "defaultValue": {
          "docString": "",
          "isOptional": true,
          "validator": {},
          "sql": {},
          "type": "anyOf",
          "values": [
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false,
                "trim": false,
                "lowerCase": false,
                "upperCase": false,
                "min": 1
              },
              "sql": {},
              "type": "string"
            },
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false,
                "floatingPoint": false,
                "min": -9007199254740991,
                "max": 9007199254740991
              },
              "sql": {},
              "type": "number"
            }
          ]
        },
        "sql": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "defaultValue": "{}",
          "keys": {
            "primary": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "searchable": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "hasDefaultValue": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            }
          }
        },
        "validator": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "defaultValue": "{}",
          "keys": {}
        },
        "keys": {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "generic",
          "keys": {
            "docString": "",
            "isOptional": false,
            "validator": {
              "convert": false,
              "allowNull": false,
              "trim": false,
              "lowerCase": false,
              "upperCase": false,
              "min": 1
            },
            "sql": {},
            "type": "string"
          },
          "values": {
            "docString": "",
            "isOptional": false,
            "validator": {},
            "sql": {},
            "type": "reference",
            "reference": {
              "group": "experimental",
              "name": "typeSystemDefinition",
              "uniqueName": "ExperimentalTypeSystemDefinition"
            }
          }
        },
        "reference": {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "referenceDefinition",
            "uniqueName": "ExperimentalReferenceDefinition"
          }
        },
        "relations": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "convert": false
          },
          "sql": {},
          "type": "array",
          "values": {
            "docString": "",
            "isOptional": false,
            "validator": {},
            "sql": {},
            "type": "reference",
            "reference": {
              "group": "experimental",
              "name": "relationDefinition",
              "uniqueName": "ExperimentalRelationDefinition"
            }
          }
        }
      }
    },
    "fileDefinition": {
      "docString": "",
      "isOptional": false,
      "validator": {
        "allowNull": false,
        "strict": false
      },
      "sql": {},
      "type": "object",
      "group": "experimental",
      "name": "fileDefinition",
      "relations": [],
      "keys": {
        "type": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string",
          "oneOf": ["file"]
        },
        "group": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "name": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "docString": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 0
          },
          "sql": {},
          "type": "string",
          "defaultValue": "\"\""
        },
        "isOptional": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false
          },
          "sql": {},
          "type": "boolean",
          "defaultValue": "false"
        },
        "defaultValue": {
          "docString": "",
          "isOptional": true,
          "validator": {},
          "sql": {},
          "type": "anyOf",
          "values": [
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false,
                "trim": false,
                "lowerCase": false,
                "upperCase": false,
                "min": 1
              },
              "sql": {},
              "type": "string"
            },
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false,
                "floatingPoint": false,
                "min": -9007199254740991,
                "max": 9007199254740991
              },
              "sql": {},
              "type": "number"
            }
          ]
        },
        "sql": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "defaultValue": "{}",
          "keys": {
            "primary": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "searchable": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "hasDefaultValue": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            }
          }
        },
        "validator": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "keys": {
            "mimeTypes": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false
              },
              "sql": {},
              "type": "array",
              "values": {
                "docString": "",
                "isOptional": false,
                "validator": {
                  "convert": false,
                  "allowNull": false,
                  "trim": false,
                  "lowerCase": false,
                  "upperCase": false,
                  "min": 1
                },
                "sql": {},
                "type": "string"
              }
            }
          }
        }
      }
    },
    "generateOptions": {
      "docString": "Select the targets and generators to be used when generating. See {@link https://compasjs.com/generators/targets.html} for more information.",
      "isOptional": false,
      "validator": {
        "allowNull": false,
        "strict": false
      },
      "sql": {},
      "type": "object",
      "group": "experimental",
      "name": "generateOptions",
      "relations": [],
      "keys": {
        "targetLanguage": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string",
          "oneOf": ["js", "ts"]
        },
        "outputDirectory": {
          "docString": "Where to write the files to. If no directory is provided, a list of in memory files with contents is returned from the {@link Generator.generate} call.",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "generators": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "allowNull": false,
            "strict": true
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "keys": {
            "structure": {
              "docString": "Enable a structure dump. This way this structure can be reused via 'Generator#addStructure",
              "isOptional": true,
              "validator": {
                "allowNull": false,
                "strict": true
              },
              "sql": {},
              "type": "object",
              "relations": [],
              "keys": {}
            },
            "openApi": {
              "docString": "Enable the OpenAPI generator.",
              "isOptional": true,
              "validator": {
                "allowNull": false,
                "strict": true
              },
              "sql": {},
              "type": "object",
              "relations": [],
              "keys": {
                "openApiExtensions": {
                  "docString": "Custom top level properties.",
                  "isOptional": true,
                  "validator": {
                    "allowNull": false,
                    "strict": true
                  },
                  "sql": {},
                  "type": "object",
                  "relations": [],
                  "defaultValue": "{}",
                  "keys": {
                    "version": {
                      "docString": "",
                      "isOptional": true,
                      "validator": {
                        "convert": false,
                        "allowNull": false,
                        "trim": false,
                        "lowerCase": false,
                        "upperCase": false,
                        "min": 1
                      },
                      "sql": {},
                      "type": "string"
                    },
                    "title": {
                      "docString": "",
                      "isOptional": true,
                      "validator": {
                        "convert": false,
                        "allowNull": false,
                        "trim": false,
                        "lowerCase": false,
                        "upperCase": false,
                        "min": 1
                      },
                      "sql": {},
                      "type": "string"
                    },
                    "description": {
                      "docString": "",
                      "isOptional": true,
                      "validator": {
                        "convert": false,
                        "allowNull": false,
                        "trim": false,
                        "lowerCase": false,
                        "upperCase": false,
                        "min": 1
                      },
                      "sql": {},
                      "type": "string"
                    }
                  }
                },
                "openApiRouteExtensions": {
                  "docString": "Add or overwrite specific properties per route. The keys should be formatted as 'upperCaseFirst(group) + upperCaseFirst(name)'.",
                  "isOptional": true,
                  "validator": {},
                  "sql": {},
                  "type": "generic",
                  "defaultValue": "{}",
                  "keys": {
                    "docString": "",
                    "isOptional": false,
                    "validator": {
                      "convert": false,
                      "allowNull": false,
                      "trim": false,
                      "lowerCase": false,
                      "upperCase": false,
                      "min": 1
                    },
                    "sql": {},
                    "type": "string"
                  },
                  "values": {
                    "docString": "",
                    "isOptional": false,
                    "validator": {
                      "allowNull": false
                    },
                    "sql": {},
                    "type": "any",
                    "rawValueImport": {},
                    "rawValidatorImport": {}
                  }
                }
              }
            },
            "router": {
              "docString": "Generate a validating router with entry points for your route handlers.",
              "isOptional": true,
              "validator": {
                "allowNull": false,
                "strict": true
              },
              "sql": {},
              "type": "object",
              "relations": [],
              "keys": {
                "target": {
                  "docString": "Select one of the supported libraries to generate a router for.",
                  "isOptional": false,
                  "validator": {},
                  "sql": {},
                  "type": "anyOf",
                  "values": [
                    {
                      "docString": "",
                      "isOptional": false,
                      "validator": {
                        "allowNull": false,
                        "strict": true
                      },
                      "sql": {},
                      "type": "object",
                      "relations": [],
                      "keys": {
                        "library": {
                          "docString": "",
                          "isOptional": false,
                          "validator": {
                            "convert": false,
                            "allowNull": false,
                            "trim": false,
                            "lowerCase": false,
                            "upperCase": false,
                            "min": 1
                          },
                          "sql": {},
                          "type": "string",
                          "oneOf": ["koa"]
                        }
                      }
                    }
                  ]
                },
                "exposeApiStructure": {
                  "docString": "Adds a Compas '_compas/structure.json' route to the generated router that includes all available routes.",
                  "isOptional": true,
                  "validator": {
                    "convert": false,
                    "allowNull": false
                  },
                  "sql": {},
                  "type": "boolean",
                  "defaultValue": "false"
                }
              }
            },
            "database": {
              "docString": "Generate one of the compatible database interfaces.",
              "isOptional": true,
              "validator": {
                "allowNull": false,
                "strict": true
              },
              "sql": {},
              "type": "object",
              "relations": [],
              "keys": {
                "target": {
                  "docString": "Select one of the supported dialects to generate queries for.",
                  "isOptional": false,
                  "validator": {},
                  "sql": {},
                  "type": "anyOf",
                  "values": [
                    {
                      "docString": "",
                      "isOptional": false,
                      "validator": {
                        "allowNull": false,
                        "strict": true
                      },
                      "sql": {},
                      "type": "object",
                      "relations": [],
                      "keys": {
                        "dialect": {
                          "docString": "",
                          "isOptional": false,
                          "validator": {
                            "convert": false,
                            "allowNull": false,
                            "trim": false,
                            "lowerCase": false,
                            "upperCase": false,
                            "min": 1
                          },
                          "sql": {},
                          "type": "string",
                          "oneOf": ["postgres"]
                        },
                        "includeDDL": {
                          "docString": "Write out 'common/structure.sql' with a naive DDL approach.",
                          "isOptional": true,
                          "validator": {
                            "convert": false,
                            "allowNull": false
                          },
                          "sql": {},
                          "type": "boolean",
                          "defaultValue": "false"
                        }
                      }
                    }
                  ]
                },
                "includeEntityDiagram": {
                  "docString": "Create a markdown file containing the ERD in a 'mermaid' block.",
                  "isOptional": true,
                  "validator": {
                    "convert": false,
                    "allowNull": false
                  },
                  "sql": {},
                  "type": "boolean",
                  "defaultValue": "false"
                }
              }
            },
            "validators": {
              "docString": "Alter the output of generated validators. Other generators will always include validators in their output if necessary.",
              "isOptional": true,
              "validator": {
                "allowNull": false,
                "strict": true
              },
              "sql": {},
              "type": "object",
              "relations": [],
              "keys": {
                "includeBaseTypes": {
                  "docString": "Always generate validators for all named types even if no other generator needs it. This implies {@link ExperimentalGenerateOptions.generators.types.includeBaseTypes}.",
                  "isOptional": true,
                  "validator": {
                    "convert": false,
                    "allowNull": false
                  },
                  "sql": {},
                  "type": "boolean",
                  "defaultValue": "false"
                }
              }
            },
            "apiClient": {
              "docString": "Generate an API client, based on the routes in your structure.",
              "isOptional": true,
              "validator": {
                "allowNull": false,
                "strict": true
              },
              "sql": {},
              "type": "object",
              "relations": [],
              "keys": {
                "target": {
                  "docString": "Select your HTTP client of choice.",
                  "isOptional": false,
                  "validator": {},
                  "sql": {},
                  "type": "anyOf",
                  "values": [
                    {
                      "docString": "",
                      "isOptional": false,
                      "validator": {
                        "allowNull": false,
                        "strict": true
                      },
                      "sql": {},
                      "type": "object",
                      "relations": [],
                      "keys": {
                        "library": {
                          "docString": "",
                          "isOptional": false,
                          "validator": {
                            "convert": false,
                            "allowNull": false,
                            "trim": false,
                            "lowerCase": false,
                            "upperCase": false,
                            "min": 1
                          },
                          "sql": {},
                          "type": "string",
                          "oneOf": ["axios"]
                        },
                        "targetRuntime": {
                          "docString": "",
                          "isOptional": false,
                          "validator": {
                            "convert": false,
                            "allowNull": false,
                            "trim": false,
                            "lowerCase": false,
                            "upperCase": false,
                            "min": 1
                          },
                          "sql": {},
                          "type": "string",
                          "oneOf": ["node.js", "browser", "react-native"]
                        },
                        "includeWrapper": {
                          "docString": "Include an API client wrapper to use the api easier with your user interface library.",
                          "isOptional": true,
                          "validator": {
                            "convert": false,
                            "allowNull": false,
                            "trim": false,
                            "lowerCase": false,
                            "upperCase": false,
                            "min": 1
                          },
                          "sql": {},
                          "type": "string",
                          "oneOf": ["react-query"]
                        },
                        "globalClient": {
                          "docString": "Use a global api client that will be used for all requests.",
                          "isOptional": true,
                          "validator": {
                            "convert": false,
                            "allowNull": false
                          },
                          "sql": {},
                          "type": "boolean",
                          "defaultValue": "false"
                        }
                      }
                    },
                    {
                      "docString": "",
                      "isOptional": false,
                      "validator": {
                        "allowNull": false,
                        "strict": true
                      },
                      "sql": {},
                      "type": "object",
                      "relations": [],
                      "keys": {
                        "library": {
                          "docString": "",
                          "isOptional": false,
                          "validator": {
                            "convert": false,
                            "allowNull": false,
                            "trim": false,
                            "lowerCase": false,
                            "upperCase": false,
                            "min": 1
                          },
                          "sql": {},
                          "type": "string",
                          "oneOf": ["fetch"]
                        },
                        "targetRuntime": {
                          "docString": "",
                          "isOptional": false,
                          "validator": {
                            "convert": false,
                            "allowNull": false,
                            "trim": false,
                            "lowerCase": false,
                            "upperCase": false,
                            "min": 1
                          },
                          "sql": {},
                          "type": "string",
                          "oneOf": ["node.js", "browser", "react-native"]
                        },
                        "includeWrapper": {
                          "docString": "Include an API client wrapper to use the api easier with your user interface library.",
                          "isOptional": true,
                          "validator": {
                            "convert": false,
                            "allowNull": false,
                            "trim": false,
                            "lowerCase": false,
                            "upperCase": false,
                            "min": 1
                          },
                          "sql": {},
                          "type": "string",
                          "oneOf": ["react-query"]
                        },
                        "globalClient": {
                          "docString": "Use a global api client that will be used for all requests.",
                          "isOptional": true,
                          "validator": {
                            "convert": false,
                            "allowNull": false
                          },
                          "sql": {},
                          "type": "boolean",
                          "defaultValue": "false"
                        }
                      }
                    }
                  ]
                },
                "responseValidation": {
                  "docString": "Determine how strict the API client response validations are. This defaults to loose object validation, allowing extra values in the responses which are not returned in the validated result. It is advised to disable this when you use the API client for e2e testing your server.",
                  "isOptional": true,
                  "validator": {
                    "allowNull": false,
                    "strict": false
                  },
                  "sql": {},
                  "type": "object",
                  "relations": [],
                  "defaultValue": "{ looseObjectValidation: true, }",
                  "keys": {
                    "looseObjectValidation": {
                      "docString": "",
                      "isOptional": false,
                      "validator": {
                        "convert": false,
                        "allowNull": false
                      },
                      "sql": {},
                      "type": "boolean"
                    }
                  }
                }
              }
            },
            "types": {
              "docString": "Alter the output of the generated types, they are always generated as a result of other enabled generators.",
              "isOptional": true,
              "validator": {
                "allowNull": false,
                "strict": true
              },
              "sql": {},
              "type": "object",
              "relations": [],
              "keys": {
                "includeBaseTypes": {
                  "docString": "Always generate types for all named types even if no other generator needs it.",
                  "isOptional": true,
                  "validator": {
                    "convert": false,
                    "allowNull": false
                  },
                  "sql": {},
                  "type": "boolean",
                  "defaultValue": "false"
                },
                "declareGlobalTypes": {
                  "docString": "Declare all types in the global namespace. Only applicable when using 'targetLanguage' when set to 'js' or 'ts'.",
                  "isOptional": true,
                  "validator": {
                    "convert": false,
                    "allowNull": false
                  },
                  "sql": {},
                  "type": "boolean",
                  "defaultValue": "false"
                }
              }
            }
          }
        }
      }
    },
    "genericDefinition": {
      "docString": "",
      "isOptional": false,
      "validator": {
        "allowNull": false,
        "strict": false
      },
      "sql": {},
      "type": "object",
      "group": "experimental",
      "name": "genericDefinition",
      "relations": [],
      "keys": {
        "type": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string",
          "oneOf": ["generic"]
        },
        "group": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "name": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "docString": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 0
          },
          "sql": {},
          "type": "string",
          "defaultValue": "\"\""
        },
        "isOptional": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false
          },
          "sql": {},
          "type": "boolean",
          "defaultValue": "false"
        },
        "defaultValue": {
          "docString": "",
          "isOptional": true,
          "validator": {},
          "sql": {},
          "type": "anyOf",
          "values": [
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false,
                "trim": false,
                "lowerCase": false,
                "upperCase": false,
                "min": 1
              },
              "sql": {},
              "type": "string"
            },
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false,
                "floatingPoint": false,
                "min": -9007199254740991,
                "max": 9007199254740991
              },
              "sql": {},
              "type": "number"
            }
          ]
        },
        "sql": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "defaultValue": "{}",
          "keys": {
            "primary": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "searchable": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "hasDefaultValue": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            }
          }
        },
        "validator": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "defaultValue": "{}",
          "keys": {}
        },
        "keys": {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "typeSystemDefinition",
            "uniqueName": "ExperimentalTypeSystemDefinition"
          }
        },
        "values": {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "typeSystemDefinition",
            "uniqueName": "ExperimentalTypeSystemDefinition"
          }
        }
      }
    },
    "namePart": {
      "docString": "",
      "isOptional": false,
      "validator": {
        "convert": false,
        "allowNull": false,
        "trim": false,
        "lowerCase": false,
        "upperCase": false,
        "min": 1,
        "pattern": "/^[a-zA-Z$][a-zA-Z\\d]+$/g"
      },
      "sql": {},
      "type": "string",
      "group": "experimental",
      "name": "namePart"
    },
    "namePartOptional": {
      "docString": "",
      "isOptional": true,
      "validator": {
        "convert": false,
        "allowNull": false,
        "trim": false,
        "lowerCase": false,
        "upperCase": false,
        "min": 1,
        "pattern": "/^[a-zA-Z$][a-zA-Z\\d]+$/g"
      },
      "sql": {},
      "type": "string",
      "group": "experimental",
      "name": "namePartOptional"
    },
    "namedTypeDefinition": {
      "docString": "This contains all types that can be added top level to the structure.",
      "isOptional": false,
      "validator": {
        "discriminant": "type"
      },
      "sql": {},
      "type": "anyOf",
      "group": "experimental",
      "name": "namedTypeDefinition",
      "values": [
        {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "anyDefinition",
            "uniqueName": "ExperimentalAnyDefinition"
          }
        },
        {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "anyOfDefinition",
            "uniqueName": "ExperimentalAnyOfDefinition"
          }
        },
        {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "arrayDefinition",
            "uniqueName": "ExperimentalArrayDefinition"
          }
        },
        {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "booleanDefinition",
            "uniqueName": "ExperimentalBooleanDefinition"
          }
        },
        {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "crudDefinition",
            "uniqueName": "ExperimentalCrudDefinition"
          }
        },
        {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "dateDefinition",
            "uniqueName": "ExperimentalDateDefinition"
          }
        },
        {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "extendDefinition",
            "uniqueName": "ExperimentalExtendDefinition"
          }
        },
        {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "fileDefinition",
            "uniqueName": "ExperimentalFileDefinition"
          }
        },
        {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "genericDefinition",
            "uniqueName": "ExperimentalGenericDefinition"
          }
        },
        {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "numberDefinition",
            "uniqueName": "ExperimentalNumberDefinition"
          }
        },
        {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "objectDefinition",
            "uniqueName": "ExperimentalObjectDefinition"
          }
        },
        {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "omitDefinition",
            "uniqueName": "ExperimentalOmitDefinition"
          }
        },
        {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "pickDefinition",
            "uniqueName": "ExperimentalPickDefinition"
          }
        },
        {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "routeDefinition",
            "uniqueName": "ExperimentalRouteDefinition"
          }
        },
        {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "stringDefinition",
            "uniqueName": "ExperimentalStringDefinition"
          }
        },
        {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "uuidDefinition",
            "uniqueName": "ExperimentalUuidDefinition"
          }
        }
      ]
    },
    "numberDefinition": {
      "docString": "",
      "isOptional": false,
      "validator": {
        "allowNull": false,
        "strict": false
      },
      "sql": {},
      "type": "object",
      "group": "experimental",
      "name": "numberDefinition",
      "relations": [],
      "keys": {
        "type": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string",
          "oneOf": ["number"]
        },
        "group": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "name": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "docString": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 0
          },
          "sql": {},
          "type": "string",
          "defaultValue": "\"\""
        },
        "isOptional": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false
          },
          "sql": {},
          "type": "boolean",
          "defaultValue": "false"
        },
        "defaultValue": {
          "docString": "",
          "isOptional": true,
          "validator": {},
          "sql": {},
          "type": "anyOf",
          "values": [
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false,
                "trim": false,
                "lowerCase": false,
                "upperCase": false,
                "min": 1
              },
              "sql": {},
              "type": "string"
            },
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false,
                "floatingPoint": false,
                "min": -9007199254740991,
                "max": 9007199254740991
              },
              "sql": {},
              "type": "number"
            }
          ]
        },
        "sql": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "defaultValue": "{}",
          "keys": {
            "primary": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "searchable": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "hasDefaultValue": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            }
          }
        },
        "validator": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "keys": {
            "convert": {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "floatingPoint": {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "min": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false,
                "floatingPoint": false,
                "min": -9007199254740991,
                "max": 9007199254740991
              },
              "sql": {},
              "type": "number"
            },
            "max": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false,
                "floatingPoint": false,
                "min": -9007199254740991,
                "max": 9007199254740991
              },
              "sql": {},
              "type": "number"
            },
            "allowNull": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean",
              "defaultValue": "false"
            }
          }
        },
        "oneOf": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false
          },
          "sql": {},
          "type": "array",
          "values": {
            "docString": "",
            "isOptional": false,
            "validator": {
              "convert": false,
              "allowNull": false,
              "floatingPoint": false,
              "min": -9007199254740991,
              "max": 9007199254740991
            },
            "sql": {},
            "type": "number"
          }
        }
      }
    },
    "objectDefinition": {
      "docString": "",
      "isOptional": false,
      "validator": {
        "allowNull": false,
        "strict": false
      },
      "sql": {},
      "type": "object",
      "group": "experimental",
      "name": "objectDefinition",
      "relations": [],
      "keys": {
        "type": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string",
          "oneOf": ["object"]
        },
        "group": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "name": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "docString": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 0
          },
          "sql": {},
          "type": "string",
          "defaultValue": "\"\""
        },
        "isOptional": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false
          },
          "sql": {},
          "type": "boolean",
          "defaultValue": "false"
        },
        "defaultValue": {
          "docString": "",
          "isOptional": true,
          "validator": {},
          "sql": {},
          "type": "anyOf",
          "values": [
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false,
                "trim": false,
                "lowerCase": false,
                "upperCase": false,
                "min": 1
              },
              "sql": {},
              "type": "string"
            },
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false,
                "floatingPoint": false,
                "min": -9007199254740991,
                "max": 9007199254740991
              },
              "sql": {},
              "type": "number"
            }
          ]
        },
        "sql": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "defaultValue": "{}",
          "keys": {
            "primary": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "searchable": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "hasDefaultValue": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            }
          }
        },
        "validator": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "keys": {
            "allowNull": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean",
              "defaultValue": "false"
            },
            "strict": {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            }
          }
        },
        "shortName": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "keys": {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "generic",
          "keys": {
            "docString": "",
            "isOptional": false,
            "validator": {
              "convert": false,
              "allowNull": false,
              "trim": false,
              "lowerCase": false,
              "upperCase": false,
              "min": 1
            },
            "sql": {},
            "type": "string"
          },
          "values": {
            "docString": "",
            "isOptional": false,
            "validator": {},
            "sql": {},
            "type": "reference",
            "reference": {
              "group": "experimental",
              "name": "typeSystemDefinition",
              "uniqueName": "ExperimentalTypeSystemDefinition"
            }
          }
        },
        "enableQueries": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false
          },
          "sql": {},
          "type": "boolean"
        },
        "queryOptions": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "keys": {
            "withSoftDeletes": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "withDates": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "withPrimaryKey": {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "isView": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "schema": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false,
                "trim": false,
                "lowerCase": false,
                "upperCase": false,
                "min": 1
              },
              "sql": {},
              "type": "string"
            }
          }
        },
        "relations": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "convert": false
          },
          "sql": {},
          "type": "array",
          "values": {
            "docString": "",
            "isOptional": false,
            "validator": {},
            "sql": {},
            "type": "reference",
            "reference": {
              "group": "experimental",
              "name": "relationDefinition",
              "uniqueName": "ExperimentalRelationDefinition"
            }
          }
        }
      }
    },
    "omitDefinition": {
      "docString": "",
      "isOptional": false,
      "validator": {
        "allowNull": false,
        "strict": false
      },
      "sql": {},
      "type": "object",
      "group": "experimental",
      "name": "omitDefinition",
      "relations": [],
      "keys": {
        "type": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string",
          "oneOf": ["omit"]
        },
        "group": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "name": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "docString": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 0
          },
          "sql": {},
          "type": "string",
          "defaultValue": "\"\""
        },
        "isOptional": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false
          },
          "sql": {},
          "type": "boolean",
          "defaultValue": "false"
        },
        "defaultValue": {
          "docString": "",
          "isOptional": true,
          "validator": {},
          "sql": {},
          "type": "anyOf",
          "values": [
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false,
                "trim": false,
                "lowerCase": false,
                "upperCase": false,
                "min": 1
              },
              "sql": {},
              "type": "string"
            },
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false,
                "floatingPoint": false,
                "min": -9007199254740991,
                "max": 9007199254740991
              },
              "sql": {},
              "type": "number"
            }
          ]
        },
        "sql": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "defaultValue": "{}",
          "keys": {
            "primary": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "searchable": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "hasDefaultValue": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            }
          }
        },
        "validator": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "keys": {
            "allowNull": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean",
              "defaultValue": "false"
            },
            "strict": {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            }
          }
        },
        "keys": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "convert": false
          },
          "sql": {},
          "type": "array",
          "values": {
            "docString": "",
            "isOptional": false,
            "validator": {
              "convert": false,
              "allowNull": false,
              "trim": false,
              "lowerCase": false,
              "upperCase": false,
              "min": 1
            },
            "sql": {},
            "type": "string"
          }
        },
        "reference": {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "typeSystemDefinition",
            "uniqueName": "ExperimentalTypeSystemDefinition"
          }
        }
      }
    },
    "pickDefinition": {
      "docString": "",
      "isOptional": false,
      "validator": {
        "allowNull": false,
        "strict": false
      },
      "sql": {},
      "type": "object",
      "group": "experimental",
      "name": "pickDefinition",
      "relations": [],
      "keys": {
        "type": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string",
          "oneOf": ["pick"]
        },
        "group": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "name": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "docString": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 0
          },
          "sql": {},
          "type": "string",
          "defaultValue": "\"\""
        },
        "isOptional": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false
          },
          "sql": {},
          "type": "boolean",
          "defaultValue": "false"
        },
        "defaultValue": {
          "docString": "",
          "isOptional": true,
          "validator": {},
          "sql": {},
          "type": "anyOf",
          "values": [
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false,
                "trim": false,
                "lowerCase": false,
                "upperCase": false,
                "min": 1
              },
              "sql": {},
              "type": "string"
            },
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false,
                "floatingPoint": false,
                "min": -9007199254740991,
                "max": 9007199254740991
              },
              "sql": {},
              "type": "number"
            }
          ]
        },
        "sql": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "defaultValue": "{}",
          "keys": {
            "primary": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "searchable": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "hasDefaultValue": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            }
          }
        },
        "validator": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "keys": {
            "allowNull": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean",
              "defaultValue": "false"
            },
            "strict": {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            }
          }
        },
        "keys": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "convert": false
          },
          "sql": {},
          "type": "array",
          "values": {
            "docString": "",
            "isOptional": false,
            "validator": {
              "convert": false,
              "allowNull": false,
              "trim": false,
              "lowerCase": false,
              "upperCase": false,
              "min": 1
            },
            "sql": {},
            "type": "string"
          }
        },
        "reference": {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "typeSystemDefinition",
            "uniqueName": "ExperimentalTypeSystemDefinition"
          }
        }
      }
    },
    "referenceDefinition": {
      "docString": "",
      "isOptional": false,
      "validator": {
        "allowNull": false,
        "strict": false
      },
      "sql": {},
      "type": "object",
      "group": "experimental",
      "name": "referenceDefinition",
      "relations": [],
      "keys": {
        "type": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string",
          "oneOf": ["reference"]
        },
        "docString": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 0
          },
          "sql": {},
          "type": "string",
          "defaultValue": "\"\""
        },
        "isOptional": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false
          },
          "sql": {},
          "type": "boolean",
          "defaultValue": "false"
        },
        "defaultValue": {
          "docString": "",
          "isOptional": true,
          "validator": {},
          "sql": {},
          "type": "anyOf",
          "values": [
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false,
                "trim": false,
                "lowerCase": false,
                "upperCase": false,
                "min": 1
              },
              "sql": {},
              "type": "string"
            },
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false,
                "floatingPoint": false,
                "min": -9007199254740991,
                "max": 9007199254740991
              },
              "sql": {},
              "type": "number"
            }
          ]
        },
        "sql": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "defaultValue": "{}",
          "keys": {
            "primary": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "searchable": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "hasDefaultValue": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            }
          }
        },
        "validator": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "defaultValue": "{}",
          "keys": {}
        },
        "reference": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "keys": {
            "group": {
              "type": "reference",
              "docString": "",
              "isOptional": false,
              "sql": {},
              "validator": {},
              "reference": {
                "group": "experimental",
                "name": "namePart"
              }
            },
            "name": {
              "type": "reference",
              "docString": "",
              "isOptional": false,
              "sql": {},
              "validator": {},
              "reference": {
                "group": "experimental",
                "name": "namePart"
              }
            }
          }
        }
      }
    },
    "relationDefinition": {
      "docString": "",
      "isOptional": false,
      "validator": {
        "allowNull": false,
        "strict": false
      },
      "sql": {},
      "type": "object",
      "group": "experimental",
      "name": "relationDefinition",
      "relations": [],
      "keys": {
        "type": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string",
          "oneOf": ["relation"]
        },
        "subType": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string",
          "oneOf": ["manyToOne", "oneToMany", "oneToOne", "oneToOneReverse"]
        },
        "reference": {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "referenceDefinition",
            "uniqueName": "ExperimentalReferenceDefinition"
          }
        },
        "ownKey": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "referencedKey": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "isOptional": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "convert": false,
            "allowNull": false
          },
          "sql": {},
          "type": "boolean"
        }
      }
    },
    "routeDefinition": {
      "docString": "",
      "isOptional": false,
      "validator": {
        "allowNull": false,
        "strict": false
      },
      "sql": {},
      "type": "object",
      "group": "experimental",
      "name": "routeDefinition",
      "relations": [],
      "keys": {
        "type": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string",
          "oneOf": ["route"]
        },
        "group": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "name": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "docString": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 0
          },
          "sql": {},
          "type": "string",
          "defaultValue": "\"\""
        },
        "isOptional": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false
          },
          "sql": {},
          "type": "boolean",
          "defaultValue": "false"
        },
        "defaultValue": {
          "docString": "",
          "isOptional": true,
          "validator": {},
          "sql": {},
          "type": "anyOf",
          "values": [
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false,
                "trim": false,
                "lowerCase": false,
                "upperCase": false,
                "min": 1
              },
              "sql": {},
              "type": "string"
            },
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false,
                "floatingPoint": false,
                "min": -9007199254740991,
                "max": 9007199254740991
              },
              "sql": {},
              "type": "number"
            }
          ]
        },
        "sql": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "defaultValue": "{}",
          "keys": {
            "primary": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "searchable": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "hasDefaultValue": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            }
          }
        },
        "validator": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "defaultValue": "{}",
          "keys": {}
        },
        "method": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string",
          "oneOf": ["GET", "POST", "PUT", "DELETE", "HEAD", "PATCH"]
        },
        "idempotent": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "convert": false,
            "allowNull": false
          },
          "sql": {},
          "type": "boolean"
        },
        "path": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "tags": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "convert": false
          },
          "sql": {},
          "type": "array",
          "values": {
            "docString": "",
            "isOptional": false,
            "validator": {
              "convert": false,
              "allowNull": false,
              "trim": false,
              "lowerCase": false,
              "upperCase": false,
              "min": 1
            },
            "sql": {},
            "type": "string"
          }
        },
        "query": {
          "docString": "",
          "isOptional": true,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "referenceDefinition",
            "uniqueName": "ExperimentalReferenceDefinition"
          }
        },
        "params": {
          "docString": "",
          "isOptional": true,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "referenceDefinition",
            "uniqueName": "ExperimentalReferenceDefinition"
          }
        },
        "body": {
          "docString": "",
          "isOptional": true,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "referenceDefinition",
            "uniqueName": "ExperimentalReferenceDefinition"
          }
        },
        "files": {
          "docString": "",
          "isOptional": true,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "referenceDefinition",
            "uniqueName": "ExperimentalReferenceDefinition"
          }
        },
        "response": {
          "docString": "",
          "isOptional": true,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "referenceDefinition",
            "uniqueName": "ExperimentalReferenceDefinition"
          }
        },
        "invalidations": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "convert": false
          },
          "sql": {},
          "type": "array",
          "values": {
            "docString": "",
            "isOptional": false,
            "validator": {},
            "sql": {},
            "type": "reference",
            "reference": {
              "group": "experimental",
              "name": "routeInvalidationDefinition",
              "uniqueName": "ExperimentalRouteInvalidationDefinition"
            }
          }
        },
        "metadata": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "keys": {
            "requestBodyType": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false,
                "trim": false,
                "lowerCase": false,
                "upperCase": false,
                "min": 1
              },
              "sql": {},
              "type": "string",
              "oneOf": ["json", "form-data"]
            }
          }
        }
      }
    },
    "routeInvalidationDefinition": {
      "docString": "",
      "isOptional": false,
      "validator": {
        "allowNull": false,
        "strict": false
      },
      "sql": {},
      "type": "object",
      "group": "experimental",
      "name": "routeInvalidationDefinition",
      "relations": [],
      "keys": {
        "type": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string",
          "oneOf": ["routeInvalidation"]
        },
        "target": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "keys": {
            "group": {
              "type": "reference",
              "docString": "",
              "isOptional": false,
              "sql": {},
              "validator": {},
              "reference": {
                "group": "experimental",
                "name": "namePart"
              }
            },
            "name": {
              "type": "reference",
              "docString": "",
              "isOptional": false,
              "sql": {},
              "validator": {},
              "reference": {
                "group": "experimental",
                "name": "namePartOptional"
              }
            }
          }
        },
        "properties": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "keys": {
            "useSharedParams": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "useSharedQuery": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "specification": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "allowNull": false,
                "strict": false
              },
              "sql": {},
              "type": "object",
              "relations": [],
              "keys": {
                "params": {
                  "docString": "",
                  "isOptional": false,
                  "validator": {},
                  "sql": {},
                  "type": "generic",
                  "keys": {
                    "docString": "",
                    "isOptional": false,
                    "validator": {
                      "convert": false,
                      "allowNull": false,
                      "trim": false,
                      "lowerCase": false,
                      "upperCase": false,
                      "min": 1
                    },
                    "sql": {},
                    "type": "string"
                  },
                  "values": {
                    "docString": "",
                    "isOptional": false,
                    "validator": {
                      "convert": false
                    },
                    "sql": {},
                    "type": "array",
                    "values": {
                      "docString": "",
                      "isOptional": false,
                      "validator": {
                        "convert": false,
                        "allowNull": false,
                        "trim": false,
                        "lowerCase": false,
                        "upperCase": false,
                        "min": 1
                      },
                      "sql": {},
                      "type": "string"
                    }
                  }
                },
                "query": {
                  "docString": "",
                  "isOptional": false,
                  "validator": {},
                  "sql": {},
                  "type": "generic",
                  "keys": {
                    "docString": "",
                    "isOptional": false,
                    "validator": {
                      "convert": false,
                      "allowNull": false,
                      "trim": false,
                      "lowerCase": false,
                      "upperCase": false,
                      "min": 1
                    },
                    "sql": {},
                    "type": "string"
                  },
                  "values": {
                    "docString": "",
                    "isOptional": false,
                    "validator": {
                      "convert": false
                    },
                    "sql": {},
                    "type": "array",
                    "values": {
                      "docString": "",
                      "isOptional": false,
                      "validator": {
                        "convert": false,
                        "allowNull": false,
                        "trim": false,
                        "lowerCase": false,
                        "upperCase": false,
                        "min": 1
                      },
                      "sql": {},
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "stringDefinition": {
      "docString": "",
      "isOptional": false,
      "validator": {
        "allowNull": false,
        "strict": false
      },
      "sql": {},
      "type": "object",
      "group": "experimental",
      "name": "stringDefinition",
      "relations": [],
      "keys": {
        "type": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string",
          "oneOf": ["string"]
        },
        "group": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "name": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "docString": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 0
          },
          "sql": {},
          "type": "string",
          "defaultValue": "\"\""
        },
        "isOptional": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false
          },
          "sql": {},
          "type": "boolean",
          "defaultValue": "false"
        },
        "defaultValue": {
          "docString": "",
          "isOptional": true,
          "validator": {},
          "sql": {},
          "type": "anyOf",
          "values": [
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false,
                "trim": false,
                "lowerCase": false,
                "upperCase": false,
                "min": 1
              },
              "sql": {},
              "type": "string"
            },
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false,
                "floatingPoint": false,
                "min": -9007199254740991,
                "max": 9007199254740991
              },
              "sql": {},
              "type": "number"
            }
          ]
        },
        "sql": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "defaultValue": "{}",
          "keys": {
            "primary": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "searchable": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "hasDefaultValue": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            }
          }
        },
        "validator": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "keys": {
            "convert": {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "trim": {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "lowerCase": {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "upperCase": {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "min": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false,
                "floatingPoint": false,
                "min": 0,
                "max": 9007199254740991
              },
              "sql": {},
              "type": "number",
              "defaultValue": "1"
            },
            "max": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false,
                "floatingPoint": false,
                "min": 0,
                "max": 9007199254740991
              },
              "sql": {},
              "type": "number"
            },
            "pattern": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false,
                "trim": false,
                "lowerCase": false,
                "upperCase": false,
                "min": 1
              },
              "sql": {},
              "type": "string"
            },
            "allowNull": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean",
              "defaultValue": "false"
            },
            "disallowedCharacters": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false
              },
              "sql": {},
              "type": "array",
              "values": {
                "docString": "",
                "isOptional": false,
                "validator": {
                  "convert": false,
                  "allowNull": false,
                  "trim": false,
                  "lowerCase": false,
                  "upperCase": false,
                  "min": 1,
                  "max": 2
                },
                "sql": {},
                "type": "string"
              }
            }
          }
        },
        "oneOf": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false
          },
          "sql": {},
          "type": "array",
          "values": {
            "docString": "",
            "isOptional": false,
            "validator": {
              "convert": false,
              "allowNull": false,
              "trim": false,
              "lowerCase": false,
              "upperCase": false,
              "min": 1
            },
            "sql": {},
            "type": "string"
          }
        }
      }
    },
    "structure": {
      "docString": "",
      "isOptional": false,
      "validator": {},
      "sql": {},
      "type": "generic",
      "group": "experimental",
      "name": "structure",
      "keys": {
        "type": "reference",
        "docString": "",
        "isOptional": false,
        "sql": {},
        "validator": {},
        "reference": {
          "group": "experimental",
          "name": "namePart"
        }
      },
      "values": {
        "docString": "",
        "isOptional": false,
        "validator": {},
        "sql": {},
        "type": "generic",
        "keys": {
          "type": "reference",
          "docString": "",
          "isOptional": false,
          "sql": {},
          "validator": {},
          "reference": {
            "group": "experimental",
            "name": "namePart"
          }
        },
        "values": {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "namedTypeDefinition",
            "uniqueName": "ExperimentalNamedTypeDefinition"
          }
        }
      }
    },
    "typeDefinition": {
      "docString": "This contains all known type definitions.",
      "isOptional": false,
      "validator": {},
      "sql": {},
      "type": "anyOf",
      "group": "experimental",
      "name": "typeDefinition",
      "values": [
        {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "namedTypeDefinition",
            "uniqueName": "ExperimentalNamedTypeDefinition"
          }
        },
        {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "referenceDefinition",
            "uniqueName": "ExperimentalReferenceDefinition"
          }
        },
        {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "relationDefinition",
            "uniqueName": "ExperimentalRelationDefinition"
          }
        },
        {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "routeInvalidationDefinition",
            "uniqueName": "ExperimentalRouteInvalidationDefinition"
          }
        }
      ]
    },
    "typeSystemDefinition": {
      "docString": "All type definitions that can be used inside other types, like object keys.",
      "isOptional": false,
      "validator": {
        "discriminant": "type"
      },
      "sql": {},
      "type": "anyOf",
      "group": "experimental",
      "name": "typeSystemDefinition",
      "values": [
        {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "anyDefinition",
            "uniqueName": "ExperimentalAnyDefinition"
          }
        },
        {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "anyOfDefinition",
            "uniqueName": "ExperimentalAnyOfDefinition"
          }
        },
        {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "arrayDefinition",
            "uniqueName": "ExperimentalArrayDefinition"
          }
        },
        {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "booleanDefinition",
            "uniqueName": "ExperimentalBooleanDefinition"
          }
        },
        {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "crudDefinition",
            "uniqueName": "ExperimentalCrudDefinition"
          }
        },
        {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "dateDefinition",
            "uniqueName": "ExperimentalDateDefinition"
          }
        },
        {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "extendDefinition",
            "uniqueName": "ExperimentalExtendDefinition"
          }
        },
        {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "fileDefinition",
            "uniqueName": "ExperimentalFileDefinition"
          }
        },
        {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "genericDefinition",
            "uniqueName": "ExperimentalGenericDefinition"
          }
        },
        {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "numberDefinition",
            "uniqueName": "ExperimentalNumberDefinition"
          }
        },
        {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "objectDefinition",
            "uniqueName": "ExperimentalObjectDefinition"
          }
        },
        {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "omitDefinition",
            "uniqueName": "ExperimentalOmitDefinition"
          }
        },
        {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "pickDefinition",
            "uniqueName": "ExperimentalPickDefinition"
          }
        },
        {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "referenceDefinition",
            "uniqueName": "ExperimentalReferenceDefinition"
          }
        },
        {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "stringDefinition",
            "uniqueName": "ExperimentalStringDefinition"
          }
        },
        {
          "docString": "",
          "isOptional": false,
          "validator": {},
          "sql": {},
          "type": "reference",
          "reference": {
            "group": "experimental",
            "name": "uuidDefinition",
            "uniqueName": "ExperimentalUuidDefinition"
          }
        }
      ]
    },
    "uuidDefinition": {
      "docString": "",
      "isOptional": false,
      "validator": {
        "allowNull": false,
        "strict": false
      },
      "sql": {},
      "type": "object",
      "group": "experimental",
      "name": "uuidDefinition",
      "relations": [],
      "keys": {
        "type": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string",
          "oneOf": ["uuid"]
        },
        "group": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "name": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 1
          },
          "sql": {},
          "type": "string"
        },
        "docString": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false,
            "trim": false,
            "lowerCase": false,
            "upperCase": false,
            "min": 0
          },
          "sql": {},
          "type": "string",
          "defaultValue": "\"\""
        },
        "isOptional": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "convert": false,
            "allowNull": false
          },
          "sql": {},
          "type": "boolean",
          "defaultValue": "false"
        },
        "defaultValue": {
          "docString": "",
          "isOptional": true,
          "validator": {},
          "sql": {},
          "type": "anyOf",
          "values": [
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false,
                "trim": false,
                "lowerCase": false,
                "upperCase": false,
                "min": 1
              },
              "sql": {},
              "type": "string"
            },
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            {
              "docString": "",
              "isOptional": false,
              "validator": {
                "convert": false,
                "allowNull": false,
                "floatingPoint": false,
                "min": -9007199254740991,
                "max": 9007199254740991
              },
              "sql": {},
              "type": "number"
            }
          ]
        },
        "sql": {
          "docString": "",
          "isOptional": true,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "defaultValue": "{}",
          "keys": {
            "primary": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "searchable": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            },
            "hasDefaultValue": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean"
            }
          }
        },
        "validator": {
          "docString": "",
          "isOptional": false,
          "validator": {
            "allowNull": false,
            "strict": false
          },
          "sql": {},
          "type": "object",
          "relations": [],
          "keys": {
            "allowNull": {
              "docString": "",
              "isOptional": true,
              "validator": {
                "convert": false,
                "allowNull": false
              },
              "sql": {},
              "type": "boolean",
              "defaultValue": "false"
            }
          }
        }
      }
    }
  }
}
