{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "$schema": {
      "type": "string"
    },
    "version": {
      "type": "string",
      "const": "v1"
    },
    "kebabToPascalMap": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "string"
      }
    },
    "kebabToCamelMap": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "string"
      }
    },
    "conventionSources": {
      "type": "object",
      "propertyNames": {
        "type": "string",
        "pattern": "^[a-z0-9-]+$"
      },
      "additionalProperties": {
        "type": "string"
      }
    },
    "conventions": {
      "type": "array",
      "items": {
        "anyOf": [
          {
            "type": "string",
            "pattern": "^[a-z0-9-]+\\/[a-z0-9-]+$"
          },
          {
            "type": "object",
            "properties": {
              "use": {
                "type": "string",
                "pattern": "^[a-z0-9-]+\\/[a-z0-9-]+$"
              },
              "severity": {
                "type": "string",
                "enum": [
                  "error",
                  "warning"
                ]
              },
              "paths": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                ]
              },
              "placeholders": {
                "type": "object",
                "propertyNames": {
                  "type": "string",
                  "pattern": "^[a-zA-Z][a-zA-Z0-9]*$"
                },
                "additionalProperties": {
                  "type": "string",
                  "pattern": "^[a-zA-Z0-9_-]+$"
                }
              },
              "excludeFiles": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "if": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "hasFile": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "hasFile"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "placeholderSatisfies": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "placeholderSatisfies"
                    ],
                    "additionalProperties": false
                  }
                ]
              },
              "for": {
                "type": "object",
                "properties": {
                  "files": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    ]
                  }
                },
                "required": [
                  "files"
                ],
                "additionalProperties": false
              },
              "must": {
                "type": "object",
                "properties": {
                  "haveType": {
                    "type": "string",
                    "enum": [
                      "file",
                      "directory"
                    ]
                  },
                  "haveFiles": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "declareTypes": {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "schema": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "type": "string",
                                      "enum": [
                                        "string",
                                        "number",
                                        "boolean",
                                        "null"
                                      ]
                                    },
                                    "enum": {
                                      "minItems": 1,
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "number"
                                          },
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      }
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "enum"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "type": "string",
                                      "const": "array"
                                    },
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "enum": [
                                            "string",
                                            "number",
                                            "boolean",
                                            "null"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "type"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "items"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "type": "string",
                                      "const": "object"
                                    },
                                    "properties": {
                                      "type": "object",
                                      "propertyNames": {
                                        "type": "string"
                                      },
                                      "additionalProperties": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {},
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "type": {
                                                "type": "string",
                                                "enum": [
                                                  "string",
                                                  "number",
                                                  "boolean",
                                                  "null"
                                                ]
                                              }
                                            },
                                            "required": [
                                              "type"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "required": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "additionalProperties": {
                                      "type": "boolean"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "properties"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "type": "string",
                                      "enum": [
                                        "string",
                                        "number",
                                        "boolean",
                                        "null"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "required": [
                            "name"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "declareConstants": {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "schema": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "type": "string",
                                      "enum": [
                                        "string",
                                        "number",
                                        "boolean",
                                        "null"
                                      ]
                                    },
                                    "enum": {
                                      "minItems": 1,
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "number"
                                          },
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      }
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "enum"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "type": "string",
                                      "const": "array"
                                    },
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "enum": [
                                            "string",
                                            "number",
                                            "boolean",
                                            "null"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "type"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "items"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "type": "string",
                                      "const": "object"
                                    },
                                    "properties": {
                                      "type": "object",
                                      "propertyNames": {
                                        "type": "string"
                                      },
                                      "additionalProperties": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {},
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "type": {
                                                "type": "string",
                                                "enum": [
                                                  "string",
                                                  "number",
                                                  "boolean",
                                                  "null"
                                                ]
                                              }
                                            },
                                            "required": [
                                              "type"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "required": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "additionalProperties": {
                                      "type": "boolean"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "properties"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "type": "string",
                                      "enum": [
                                        "string",
                                        "number",
                                        "boolean",
                                        "null"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "required": [
                            "name"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "declareFunctions": {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "receiveParamOfType": {
                              "type": "string"
                            },
                            "receiveParamsOfTypes": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "returnValueOfType": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "name"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "declareInterfaces": {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "extend": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "type": "string"
                                    },
                                    "allowOmissions": {
                                      "type": "boolean"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "required": [
                            "name"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "declareClasses": {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "extend": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "type": "string"
                                    },
                                    "allowOmissions": {
                                      "type": "boolean"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "implement": {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string"
                                      },
                                      "allowOmissions": {
                                        "type": "boolean"
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              }
                            }
                          },
                          "required": [
                            "name"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "export": {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "from": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "name"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "exportTypes": {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "schema": {
                                  "anyOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "enum": [
                                            "string",
                                            "number",
                                            "boolean",
                                            "null"
                                          ]
                                        },
                                        "enum": {
                                          "minItems": 1,
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "boolean"
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          }
                                        }
                                      },
                                      "required": [
                                        "type",
                                        "enum"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "const": "array"
                                        },
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string",
                                              "enum": [
                                                "string",
                                                "number",
                                                "boolean",
                                                "null"
                                              ]
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "required": [
                                        "type",
                                        "items"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "const": "object"
                                        },
                                        "properties": {
                                          "type": "object",
                                          "propertyNames": {
                                            "type": "string"
                                          },
                                          "additionalProperties": {
                                            "anyOf": [
                                              {
                                                "type": "object",
                                                "properties": {},
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "type": {
                                                    "type": "string",
                                                    "enum": [
                                                      "string",
                                                      "number",
                                                      "boolean",
                                                      "null"
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "type"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "required": {
                                          "type": "array",
                                          "items": {
                                            "type": "string"
                                          }
                                        },
                                        "additionalProperties": {
                                          "type": "boolean"
                                        }
                                      },
                                      "required": [
                                        "type",
                                        "properties"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "enum": [
                                            "string",
                                            "number",
                                            "boolean",
                                            "null"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "type"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "name"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "from": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "name",
                                "from"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      ]
                    }
                  },
                  "exportConstants": {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "from": {
                              "type": "string"
                            },
                            "schema": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "type": "string",
                                      "enum": [
                                        "string",
                                        "number",
                                        "boolean",
                                        "null"
                                      ]
                                    },
                                    "enum": {
                                      "minItems": 1,
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "number"
                                          },
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      }
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "enum"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "type": "string",
                                      "const": "array"
                                    },
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "enum": [
                                            "string",
                                            "number",
                                            "boolean",
                                            "null"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "type"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "items"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "type": "string",
                                      "const": "object"
                                    },
                                    "properties": {
                                      "type": "object",
                                      "propertyNames": {
                                        "type": "string"
                                      },
                                      "additionalProperties": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {},
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "type": {
                                                "type": "string",
                                                "enum": [
                                                  "string",
                                                  "number",
                                                  "boolean",
                                                  "null"
                                                ]
                                              }
                                            },
                                            "required": [
                                              "type"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "required": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "additionalProperties": {
                                      "type": "boolean"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "properties"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "type": "string",
                                      "enum": [
                                        "string",
                                        "number",
                                        "boolean",
                                        "null"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "required": [
                            "name"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "exportFunctions": {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "receiveParamOfType": {
                              "type": "string"
                            },
                            "receiveParamsOfTypes": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "returnValueOfType": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "name"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "exportInterfaces": {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "extend": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "type": "string"
                                    },
                                    "allowOmissions": {
                                      "type": "boolean"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "required": [
                            "name"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "exportClasses": {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "extend": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "type": "string"
                                    },
                                    "allowOmissions": {
                                      "type": "boolean"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "implement": {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string"
                                      },
                                      "allowOmissions": {
                                        "type": "boolean"
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              }
                            }
                          },
                          "required": [
                            "name"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "import": {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "from": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "name"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "importFrom": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    ]
                  },
                  "importTypes": {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "from": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "name"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "importFromCurrentDir": {
                    "type": "boolean"
                  },
                  "importFromParents": {
                    "type": "boolean"
                  },
                  "importFromExternals": {
                    "type": "boolean"
                  },
                  "importTypesFromCurrentDir": {
                    "type": "boolean"
                  },
                  "importTypesFromParents": {
                    "type": "boolean"
                  },
                  "importTypesFromExternals": {
                    "type": "boolean"
                  },
                  "useDeclarationOrder": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "areBarrelFiles": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              "mustNot": {
                "type": "object",
                "properties": {
                  "haveType": {
                    "type": "string",
                    "enum": [
                      "file",
                      "directory"
                    ]
                  },
                  "haveFiles": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "declareTypes": {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "schema": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "type": "string",
                                      "enum": [
                                        "string",
                                        "number",
                                        "boolean",
                                        "null"
                                      ]
                                    },
                                    "enum": {
                                      "minItems": 1,
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "number"
                                          },
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      }
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "enum"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "type": "string",
                                      "const": "array"
                                    },
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "enum": [
                                            "string",
                                            "number",
                                            "boolean",
                                            "null"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "type"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "items"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "type": "string",
                                      "const": "object"
                                    },
                                    "properties": {
                                      "type": "object",
                                      "propertyNames": {
                                        "type": "string"
                                      },
                                      "additionalProperties": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {},
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "type": {
                                                "type": "string",
                                                "enum": [
                                                  "string",
                                                  "number",
                                                  "boolean",
                                                  "null"
                                                ]
                                              }
                                            },
                                            "required": [
                                              "type"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "required": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "additionalProperties": {
                                      "type": "boolean"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "properties"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "type": "string",
                                      "enum": [
                                        "string",
                                        "number",
                                        "boolean",
                                        "null"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "required": [
                            "name"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "declareConstants": {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "schema": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "type": "string",
                                      "enum": [
                                        "string",
                                        "number",
                                        "boolean",
                                        "null"
                                      ]
                                    },
                                    "enum": {
                                      "minItems": 1,
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "number"
                                          },
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      }
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "enum"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "type": "string",
                                      "const": "array"
                                    },
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "enum": [
                                            "string",
                                            "number",
                                            "boolean",
                                            "null"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "type"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "items"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "type": "string",
                                      "const": "object"
                                    },
                                    "properties": {
                                      "type": "object",
                                      "propertyNames": {
                                        "type": "string"
                                      },
                                      "additionalProperties": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {},
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "type": {
                                                "type": "string",
                                                "enum": [
                                                  "string",
                                                  "number",
                                                  "boolean",
                                                  "null"
                                                ]
                                              }
                                            },
                                            "required": [
                                              "type"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "required": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "additionalProperties": {
                                      "type": "boolean"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "properties"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "type": "string",
                                      "enum": [
                                        "string",
                                        "number",
                                        "boolean",
                                        "null"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "required": [
                            "name"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "declareFunctions": {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "receiveParamOfType": {
                              "type": "string"
                            },
                            "receiveParamsOfTypes": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "returnValueOfType": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "name"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "declareInterfaces": {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "extend": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "type": "string"
                                    },
                                    "allowOmissions": {
                                      "type": "boolean"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "required": [
                            "name"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "declareClasses": {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "extend": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "type": "string"
                                    },
                                    "allowOmissions": {
                                      "type": "boolean"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "implement": {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string"
                                      },
                                      "allowOmissions": {
                                        "type": "boolean"
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              }
                            }
                          },
                          "required": [
                            "name"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "export": {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "from": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "name"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "exportTypes": {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "schema": {
                                  "anyOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "enum": [
                                            "string",
                                            "number",
                                            "boolean",
                                            "null"
                                          ]
                                        },
                                        "enum": {
                                          "minItems": 1,
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "boolean"
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          }
                                        }
                                      },
                                      "required": [
                                        "type",
                                        "enum"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "const": "array"
                                        },
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string",
                                              "enum": [
                                                "string",
                                                "number",
                                                "boolean",
                                                "null"
                                              ]
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "required": [
                                        "type",
                                        "items"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "const": "object"
                                        },
                                        "properties": {
                                          "type": "object",
                                          "propertyNames": {
                                            "type": "string"
                                          },
                                          "additionalProperties": {
                                            "anyOf": [
                                              {
                                                "type": "object",
                                                "properties": {},
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "type": {
                                                    "type": "string",
                                                    "enum": [
                                                      "string",
                                                      "number",
                                                      "boolean",
                                                      "null"
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "type"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "required": {
                                          "type": "array",
                                          "items": {
                                            "type": "string"
                                          }
                                        },
                                        "additionalProperties": {
                                          "type": "boolean"
                                        }
                                      },
                                      "required": [
                                        "type",
                                        "properties"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "enum": [
                                            "string",
                                            "number",
                                            "boolean",
                                            "null"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "type"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "name"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "from": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "name",
                                "from"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      ]
                    }
                  },
                  "exportConstants": {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "from": {
                              "type": "string"
                            },
                            "schema": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "type": "string",
                                      "enum": [
                                        "string",
                                        "number",
                                        "boolean",
                                        "null"
                                      ]
                                    },
                                    "enum": {
                                      "minItems": 1,
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "number"
                                          },
                                          {
                                            "type": "boolean"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      }
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "enum"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "type": "string",
                                      "const": "array"
                                    },
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "enum": [
                                            "string",
                                            "number",
                                            "boolean",
                                            "null"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "type"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "items"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "type": "string",
                                      "const": "object"
                                    },
                                    "properties": {
                                      "type": "object",
                                      "propertyNames": {
                                        "type": "string"
                                      },
                                      "additionalProperties": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {},
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "type": {
                                                "type": "string",
                                                "enum": [
                                                  "string",
                                                  "number",
                                                  "boolean",
                                                  "null"
                                                ]
                                              }
                                            },
                                            "required": [
                                              "type"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "required": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "additionalProperties": {
                                      "type": "boolean"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "properties"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "type": "string",
                                      "enum": [
                                        "string",
                                        "number",
                                        "boolean",
                                        "null"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "required": [
                            "name"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "exportFunctions": {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "receiveParamOfType": {
                              "type": "string"
                            },
                            "receiveParamsOfTypes": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "returnValueOfType": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "name"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "exportInterfaces": {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "extend": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "type": "string"
                                    },
                                    "allowOmissions": {
                                      "type": "boolean"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "required": [
                            "name"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "exportClasses": {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "extend": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "type": "string"
                                    },
                                    "allowOmissions": {
                                      "type": "boolean"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "implement": {
                              "type": "array",
                              "items": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string"
                                      },
                                      "allowOmissions": {
                                        "type": "boolean"
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              }
                            }
                          },
                          "required": [
                            "name"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "import": {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "from": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "name"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "importFrom": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    ]
                  },
                  "importTypes": {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "from": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "name"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "importFromCurrentDir": {
                    "type": "boolean"
                  },
                  "importFromParents": {
                    "type": "boolean"
                  },
                  "importFromExternals": {
                    "type": "boolean"
                  },
                  "importTypesFromCurrentDir": {
                    "type": "boolean"
                  },
                  "importTypesFromParents": {
                    "type": "boolean"
                  },
                  "importTypesFromExternals": {
                    "type": "boolean"
                  },
                  "useDeclarationOrder": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "areBarrelFiles": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              }
            },
            "required": [
              "use"
            ],
            "additionalProperties": false
          },
          {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "pattern": "^[a-z0-9-]+$"
                  },
                  "description": {
                    "type": "string"
                  },
                  "severity": {
                    "default": "error",
                    "type": "string",
                    "enum": [
                      "error",
                      "warning"
                    ]
                  },
                  "excludeFiles": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "paths": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    ]
                  },
                  "placeholders": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string",
                      "pattern": "^[a-zA-Z][a-zA-Z0-9]*$"
                    },
                    "additionalProperties": {
                      "type": "string",
                      "pattern": "^[a-zA-Z0-9_-]+$"
                    }
                  },
                  "must": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "haveType": {
                            "type": "string",
                            "enum": [
                              "file",
                              "directory"
                            ]
                          },
                          "haveFiles": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "declareTypes": {
                            "type": "array",
                            "items": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    },
                                    "schema": {
                                      "anyOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string",
                                              "enum": [
                                                "string",
                                                "number",
                                                "boolean",
                                                "null"
                                              ]
                                            },
                                            "enum": {
                                              "minItems": 1,
                                              "type": "array",
                                              "items": {
                                                "anyOf": [
                                                  {
                                                    "type": "string"
                                                  },
                                                  {
                                                    "type": "number"
                                                  },
                                                  {
                                                    "type": "boolean"
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              }
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "enum"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string",
                                              "const": "array"
                                            },
                                            "items": {
                                              "type": "object",
                                              "properties": {
                                                "type": {
                                                  "type": "string",
                                                  "enum": [
                                                    "string",
                                                    "number",
                                                    "boolean",
                                                    "null"
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "type"
                                              ],
                                              "additionalProperties": false
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "items"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string",
                                              "const": "object"
                                            },
                                            "properties": {
                                              "type": "object",
                                              "propertyNames": {
                                                "type": "string"
                                              },
                                              "additionalProperties": {
                                                "anyOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {},
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "enum": [
                                                          "string",
                                                          "number",
                                                          "boolean",
                                                          "null"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "type"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              }
                                            },
                                            "required": {
                                              "type": "array",
                                              "items": {
                                                "type": "string"
                                              }
                                            },
                                            "additionalProperties": {
                                              "type": "boolean"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "properties"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string",
                                              "enum": [
                                                "string",
                                                "number",
                                                "boolean",
                                                "null"
                                              ]
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ],
                                          "additionalProperties": false
                                        }
                                      ]
                                    }
                                  },
                                  "required": [
                                    "name"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "declareConstants": {
                            "type": "array",
                            "items": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    },
                                    "schema": {
                                      "anyOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string",
                                              "enum": [
                                                "string",
                                                "number",
                                                "boolean",
                                                "null"
                                              ]
                                            },
                                            "enum": {
                                              "minItems": 1,
                                              "type": "array",
                                              "items": {
                                                "anyOf": [
                                                  {
                                                    "type": "string"
                                                  },
                                                  {
                                                    "type": "number"
                                                  },
                                                  {
                                                    "type": "boolean"
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              }
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "enum"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string",
                                              "const": "array"
                                            },
                                            "items": {
                                              "type": "object",
                                              "properties": {
                                                "type": {
                                                  "type": "string",
                                                  "enum": [
                                                    "string",
                                                    "number",
                                                    "boolean",
                                                    "null"
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "type"
                                              ],
                                              "additionalProperties": false
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "items"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string",
                                              "const": "object"
                                            },
                                            "properties": {
                                              "type": "object",
                                              "propertyNames": {
                                                "type": "string"
                                              },
                                              "additionalProperties": {
                                                "anyOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {},
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "enum": [
                                                          "string",
                                                          "number",
                                                          "boolean",
                                                          "null"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "type"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              }
                                            },
                                            "required": {
                                              "type": "array",
                                              "items": {
                                                "type": "string"
                                              }
                                            },
                                            "additionalProperties": {
                                              "type": "boolean"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "properties"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string",
                                              "enum": [
                                                "string",
                                                "number",
                                                "boolean",
                                                "null"
                                              ]
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ],
                                          "additionalProperties": false
                                        }
                                      ]
                                    }
                                  },
                                  "required": [
                                    "name"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "declareFunctions": {
                            "type": "array",
                            "items": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    },
                                    "receiveParamOfType": {
                                      "type": "string"
                                    },
                                    "receiveParamsOfTypes": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "returnValueOfType": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "name"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "declareInterfaces": {
                            "type": "array",
                            "items": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    },
                                    "extend": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string"
                                            },
                                            "allowOmissions": {
                                              "type": "boolean"
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ],
                                          "additionalProperties": false
                                        }
                                      ]
                                    }
                                  },
                                  "required": [
                                    "name"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "declareClasses": {
                            "type": "array",
                            "items": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    },
                                    "extend": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string"
                                            },
                                            "allowOmissions": {
                                              "type": "boolean"
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ],
                                          "additionalProperties": false
                                        }
                                      ]
                                    },
                                    "implement": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "type": {
                                                "type": "string"
                                              },
                                              "allowOmissions": {
                                                "type": "boolean"
                                              }
                                            },
                                            "required": [
                                              "type"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    }
                                  },
                                  "required": [
                                    "name"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "export": {
                            "type": "array",
                            "items": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    },
                                    "from": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "name"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "exportTypes": {
                            "type": "array",
                            "items": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "anyOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "name": {
                                          "type": "string"
                                        },
                                        "schema": {
                                          "anyOf": [
                                            {
                                              "type": "object",
                                              "properties": {
                                                "type": {
                                                  "type": "string",
                                                  "enum": [
                                                    "string",
                                                    "number",
                                                    "boolean",
                                                    "null"
                                                  ]
                                                },
                                                "enum": {
                                                  "minItems": 1,
                                                  "type": "array",
                                                  "items": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string"
                                                      },
                                                      {
                                                        "type": "number"
                                                      },
                                                      {
                                                        "type": "boolean"
                                                      },
                                                      {
                                                        "type": "null"
                                                      }
                                                    ]
                                                  }
                                                }
                                              },
                                              "required": [
                                                "type",
                                                "enum"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "type": {
                                                  "type": "string",
                                                  "const": "array"
                                                },
                                                "items": {
                                                  "type": "object",
                                                  "properties": {
                                                    "type": {
                                                      "type": "string",
                                                      "enum": [
                                                        "string",
                                                        "number",
                                                        "boolean",
                                                        "null"
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "type"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              },
                                              "required": [
                                                "type",
                                                "items"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "type": {
                                                  "type": "string",
                                                  "const": "object"
                                                },
                                                "properties": {
                                                  "type": "object",
                                                  "propertyNames": {
                                                    "type": "string"
                                                  },
                                                  "additionalProperties": {
                                                    "anyOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {},
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": {
                                                  "type": "array",
                                                  "items": {
                                                    "type": "string"
                                                  }
                                                },
                                                "additionalProperties": {
                                                  "type": "boolean"
                                                }
                                              },
                                              "required": [
                                                "type",
                                                "properties"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "type": {
                                                  "type": "string",
                                                  "enum": [
                                                    "string",
                                                    "number",
                                                    "boolean",
                                                    "null"
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "type"
                                              ],
                                              "additionalProperties": false
                                            }
                                          ]
                                        }
                                      },
                                      "required": [
                                        "name"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "name": {
                                          "type": "string"
                                        },
                                        "from": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "name",
                                        "from"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                }
                              ]
                            }
                          },
                          "exportConstants": {
                            "type": "array",
                            "items": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    },
                                    "from": {
                                      "type": "string"
                                    },
                                    "schema": {
                                      "anyOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string",
                                              "enum": [
                                                "string",
                                                "number",
                                                "boolean",
                                                "null"
                                              ]
                                            },
                                            "enum": {
                                              "minItems": 1,
                                              "type": "array",
                                              "items": {
                                                "anyOf": [
                                                  {
                                                    "type": "string"
                                                  },
                                                  {
                                                    "type": "number"
                                                  },
                                                  {
                                                    "type": "boolean"
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              }
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "enum"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string",
                                              "const": "array"
                                            },
                                            "items": {
                                              "type": "object",
                                              "properties": {
                                                "type": {
                                                  "type": "string",
                                                  "enum": [
                                                    "string",
                                                    "number",
                                                    "boolean",
                                                    "null"
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "type"
                                              ],
                                              "additionalProperties": false
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "items"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string",
                                              "const": "object"
                                            },
                                            "properties": {
                                              "type": "object",
                                              "propertyNames": {
                                                "type": "string"
                                              },
                                              "additionalProperties": {
                                                "anyOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {},
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "enum": [
                                                          "string",
                                                          "number",
                                                          "boolean",
                                                          "null"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "type"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              }
                                            },
                                            "required": {
                                              "type": "array",
                                              "items": {
                                                "type": "string"
                                              }
                                            },
                                            "additionalProperties": {
                                              "type": "boolean"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "properties"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string",
                                              "enum": [
                                                "string",
                                                "number",
                                                "boolean",
                                                "null"
                                              ]
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ],
                                          "additionalProperties": false
                                        }
                                      ]
                                    }
                                  },
                                  "required": [
                                    "name"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "exportFunctions": {
                            "type": "array",
                            "items": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    },
                                    "receiveParamOfType": {
                                      "type": "string"
                                    },
                                    "receiveParamsOfTypes": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "returnValueOfType": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "name"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "exportInterfaces": {
                            "type": "array",
                            "items": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    },
                                    "extend": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string"
                                            },
                                            "allowOmissions": {
                                              "type": "boolean"
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ],
                                          "additionalProperties": false
                                        }
                                      ]
                                    }
                                  },
                                  "required": [
                                    "name"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "exportClasses": {
                            "type": "array",
                            "items": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    },
                                    "extend": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string"
                                            },
                                            "allowOmissions": {
                                              "type": "boolean"
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ],
                                          "additionalProperties": false
                                        }
                                      ]
                                    },
                                    "implement": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "type": {
                                                "type": "string"
                                              },
                                              "allowOmissions": {
                                                "type": "boolean"
                                              }
                                            },
                                            "required": [
                                              "type"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    }
                                  },
                                  "required": [
                                    "name"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "import": {
                            "type": "array",
                            "items": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    },
                                    "from": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "name"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "importFrom": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            ]
                          },
                          "importTypes": {
                            "type": "array",
                            "items": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    },
                                    "from": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "name"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "importFromCurrentDir": {
                            "type": "boolean"
                          },
                          "importFromParents": {
                            "type": "boolean"
                          },
                          "importFromExternals": {
                            "type": "boolean"
                          },
                          "importTypesFromCurrentDir": {
                            "type": "boolean"
                          },
                          "importTypesFromParents": {
                            "type": "boolean"
                          },
                          "importTypesFromExternals": {
                            "type": "boolean"
                          },
                          "useDeclarationOrder": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "areBarrelFiles": {
                            "type": "boolean"
                          }
                        },
                        "additionalProperties": false
                      },
                      {
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "type": "string",
                              "pattern": "^[a-z0-9-]+\\/[a-z0-9-]+$"
                            },
                            {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string",
                                      "pattern": "^[a-z0-9-]+$"
                                    },
                                    "description": {
                                      "type": "string"
                                    },
                                    "if": {
                                      "anyOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "hasFile": {
                                              "type": "string"
                                            }
                                          },
                                          "required": [
                                            "hasFile"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "placeholderSatisfies": {
                                              "type": "string"
                                            }
                                          },
                                          "required": [
                                            "placeholderSatisfies"
                                          ],
                                          "additionalProperties": false
                                        }
                                      ]
                                    },
                                    "for": {
                                      "type": "object",
                                      "properties": {
                                        "files": {
                                          "anyOf": [
                                            {
                                              "type": "string"
                                            },
                                            {
                                              "type": "array",
                                              "items": {
                                                "type": "string"
                                              }
                                            }
                                          ]
                                        }
                                      },
                                      "required": [
                                        "files"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "excludeFiles": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "must": {
                                      "type": "object",
                                      "properties": {
                                        "haveType": {
                                          "type": "string",
                                          "enum": [
                                            "file",
                                            "directory"
                                          ]
                                        },
                                        "haveFiles": {
                                          "type": "array",
                                          "items": {
                                            "type": "string"
                                          }
                                        },
                                        "declareTypes": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "schema": {
                                                    "anyOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          },
                                                          "enum": {
                                                            "minItems": 1,
                                                            "type": "array",
                                                            "items": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "string"
                                                                },
                                                                {
                                                                  "type": "number"
                                                                },
                                                                {
                                                                  "type": "boolean"
                                                                },
                                                                {
                                                                  "type": "null"
                                                                }
                                                              ]
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "enum"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "array"
                                                          },
                                                          "items": {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              }
                                                            },
                                                            "required": [
                                                              "type"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "items"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "object"
                                                          },
                                                          "properties": {
                                                            "type": "object",
                                                            "propertyNames": {
                                                              "type": "string"
                                                            },
                                                            "additionalProperties": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "object",
                                                                  "properties": {},
                                                                  "additionalProperties": false
                                                                },
                                                                {
                                                                  "type": "object",
                                                                  "properties": {
                                                                    "type": {
                                                                      "type": "string",
                                                                      "enum": [
                                                                        "string",
                                                                        "number",
                                                                        "boolean",
                                                                        "null"
                                                                      ]
                                                                    }
                                                                  },
                                                                  "required": [
                                                                    "type"
                                                                  ],
                                                                  "additionalProperties": false
                                                                }
                                                              ]
                                                            }
                                                          },
                                                          "required": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "string"
                                                            }
                                                          },
                                                          "additionalProperties": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "properties"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "declareConstants": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "schema": {
                                                    "anyOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          },
                                                          "enum": {
                                                            "minItems": 1,
                                                            "type": "array",
                                                            "items": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "string"
                                                                },
                                                                {
                                                                  "type": "number"
                                                                },
                                                                {
                                                                  "type": "boolean"
                                                                },
                                                                {
                                                                  "type": "null"
                                                                }
                                                              ]
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "enum"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "array"
                                                          },
                                                          "items": {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              }
                                                            },
                                                            "required": [
                                                              "type"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "items"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "object"
                                                          },
                                                          "properties": {
                                                            "type": "object",
                                                            "propertyNames": {
                                                              "type": "string"
                                                            },
                                                            "additionalProperties": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "object",
                                                                  "properties": {},
                                                                  "additionalProperties": false
                                                                },
                                                                {
                                                                  "type": "object",
                                                                  "properties": {
                                                                    "type": {
                                                                      "type": "string",
                                                                      "enum": [
                                                                        "string",
                                                                        "number",
                                                                        "boolean",
                                                                        "null"
                                                                      ]
                                                                    }
                                                                  },
                                                                  "required": [
                                                                    "type"
                                                                  ],
                                                                  "additionalProperties": false
                                                                }
                                                              ]
                                                            }
                                                          },
                                                          "required": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "string"
                                                            }
                                                          },
                                                          "additionalProperties": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "properties"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "declareFunctions": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "receiveParamOfType": {
                                                    "type": "string"
                                                  },
                                                  "receiveParamsOfTypes": {
                                                    "type": "array",
                                                    "items": {
                                                      "type": "string"
                                                    }
                                                  },
                                                  "returnValueOfType": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "declareInterfaces": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "extend": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string"
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string"
                                                          },
                                                          "allowOmissions": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "declareClasses": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "extend": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string"
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string"
                                                          },
                                                          "allowOmissions": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  },
                                                  "implement": {
                                                    "type": "array",
                                                    "items": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string"
                                                        },
                                                        {
                                                          "type": "object",
                                                          "properties": {
                                                            "type": {
                                                              "type": "string"
                                                            },
                                                            "allowOmissions": {
                                                              "type": "boolean"
                                                            }
                                                          },
                                                          "required": [
                                                            "type"
                                                          ],
                                                          "additionalProperties": false
                                                        }
                                                      ]
                                                    }
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "export": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "from": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "exportTypes": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "anyOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "name": {
                                                        "type": "string"
                                                      },
                                                      "schema": {
                                                        "anyOf": [
                                                          {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              },
                                                              "enum": {
                                                                "minItems": 1,
                                                                "type": "array",
                                                                "items": {
                                                                  "anyOf": [
                                                                    {
                                                                      "type": "string"
                                                                    },
                                                                    {
                                                                      "type": "number"
                                                                    },
                                                                    {
                                                                      "type": "boolean"
                                                                    },
                                                                    {
                                                                      "type": "null"
                                                                    }
                                                                  ]
                                                                }
                                                              }
                                                            },
                                                            "required": [
                                                              "type",
                                                              "enum"
                                                            ],
                                                            "additionalProperties": false
                                                          },
                                                          {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "const": "array"
                                                              },
                                                              "items": {
                                                                "type": "object",
                                                                "properties": {
                                                                  "type": {
                                                                    "type": "string",
                                                                    "enum": [
                                                                      "string",
                                                                      "number",
                                                                      "boolean",
                                                                      "null"
                                                                    ]
                                                                  }
                                                                },
                                                                "required": [
                                                                  "type"
                                                                ],
                                                                "additionalProperties": false
                                                              }
                                                            },
                                                            "required": [
                                                              "type",
                                                              "items"
                                                            ],
                                                            "additionalProperties": false
                                                          },
                                                          {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "const": "object"
                                                              },
                                                              "properties": {
                                                                "type": "object",
                                                                "propertyNames": {
                                                                  "type": "string"
                                                                },
                                                                "additionalProperties": {
                                                                  "anyOf": [
                                                                    {
                                                                      "type": "object",
                                                                      "properties": {},
                                                                      "additionalProperties": false
                                                                    },
                                                                    {
                                                                      "type": "object",
                                                                      "properties": {
                                                                        "type": {
                                                                          "type": "string",
                                                                          "enum": [
                                                                            "string",
                                                                            "number",
                                                                            "boolean",
                                                                            "null"
                                                                          ]
                                                                        }
                                                                      },
                                                                      "required": [
                                                                        "type"
                                                                      ],
                                                                      "additionalProperties": false
                                                                    }
                                                                  ]
                                                                }
                                                              },
                                                              "required": {
                                                                "type": "array",
                                                                "items": {
                                                                  "type": "string"
                                                                }
                                                              },
                                                              "additionalProperties": {
                                                                "type": "boolean"
                                                              }
                                                            },
                                                            "required": [
                                                              "type",
                                                              "properties"
                                                            ],
                                                            "additionalProperties": false
                                                          },
                                                          {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              }
                                                            },
                                                            "required": [
                                                              "type"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "name"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "name": {
                                                        "type": "string"
                                                      },
                                                      "from": {
                                                        "type": "string"
                                                      }
                                                    },
                                                    "required": [
                                                      "name",
                                                      "from"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              }
                                            ]
                                          }
                                        },
                                        "exportConstants": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "from": {
                                                    "type": "string"
                                                  },
                                                  "schema": {
                                                    "anyOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          },
                                                          "enum": {
                                                            "minItems": 1,
                                                            "type": "array",
                                                            "items": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "string"
                                                                },
                                                                {
                                                                  "type": "number"
                                                                },
                                                                {
                                                                  "type": "boolean"
                                                                },
                                                                {
                                                                  "type": "null"
                                                                }
                                                              ]
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "enum"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "array"
                                                          },
                                                          "items": {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              }
                                                            },
                                                            "required": [
                                                              "type"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "items"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "object"
                                                          },
                                                          "properties": {
                                                            "type": "object",
                                                            "propertyNames": {
                                                              "type": "string"
                                                            },
                                                            "additionalProperties": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "object",
                                                                  "properties": {},
                                                                  "additionalProperties": false
                                                                },
                                                                {
                                                                  "type": "object",
                                                                  "properties": {
                                                                    "type": {
                                                                      "type": "string",
                                                                      "enum": [
                                                                        "string",
                                                                        "number",
                                                                        "boolean",
                                                                        "null"
                                                                      ]
                                                                    }
                                                                  },
                                                                  "required": [
                                                                    "type"
                                                                  ],
                                                                  "additionalProperties": false
                                                                }
                                                              ]
                                                            }
                                                          },
                                                          "required": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "string"
                                                            }
                                                          },
                                                          "additionalProperties": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "properties"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "exportFunctions": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "receiveParamOfType": {
                                                    "type": "string"
                                                  },
                                                  "receiveParamsOfTypes": {
                                                    "type": "array",
                                                    "items": {
                                                      "type": "string"
                                                    }
                                                  },
                                                  "returnValueOfType": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "exportInterfaces": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "extend": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string"
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string"
                                                          },
                                                          "allowOmissions": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "exportClasses": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "extend": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string"
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string"
                                                          },
                                                          "allowOmissions": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  },
                                                  "implement": {
                                                    "type": "array",
                                                    "items": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string"
                                                        },
                                                        {
                                                          "type": "object",
                                                          "properties": {
                                                            "type": {
                                                              "type": "string"
                                                            },
                                                            "allowOmissions": {
                                                              "type": "boolean"
                                                            }
                                                          },
                                                          "required": [
                                                            "type"
                                                          ],
                                                          "additionalProperties": false
                                                        }
                                                      ]
                                                    }
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "import": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "from": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "importFrom": {
                                          "anyOf": [
                                            {
                                              "type": "string"
                                            },
                                            {
                                              "type": "array",
                                              "items": {
                                                "type": "string"
                                              }
                                            }
                                          ]
                                        },
                                        "importTypes": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "from": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "importFromCurrentDir": {
                                          "type": "boolean"
                                        },
                                        "importFromParents": {
                                          "type": "boolean"
                                        },
                                        "importFromExternals": {
                                          "type": "boolean"
                                        },
                                        "importTypesFromCurrentDir": {
                                          "type": "boolean"
                                        },
                                        "importTypesFromParents": {
                                          "type": "boolean"
                                        },
                                        "importTypesFromExternals": {
                                          "type": "boolean"
                                        },
                                        "useDeclarationOrder": {
                                          "type": "array",
                                          "items": {
                                            "type": "string"
                                          }
                                        },
                                        "areBarrelFiles": {
                                          "type": "boolean"
                                        }
                                      },
                                      "additionalProperties": false
                                    },
                                    "mustNot": {
                                      "type": "object",
                                      "properties": {
                                        "haveType": {
                                          "type": "string",
                                          "enum": [
                                            "file",
                                            "directory"
                                          ]
                                        },
                                        "haveFiles": {
                                          "type": "array",
                                          "items": {
                                            "type": "string"
                                          }
                                        },
                                        "declareTypes": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "schema": {
                                                    "anyOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          },
                                                          "enum": {
                                                            "minItems": 1,
                                                            "type": "array",
                                                            "items": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "string"
                                                                },
                                                                {
                                                                  "type": "number"
                                                                },
                                                                {
                                                                  "type": "boolean"
                                                                },
                                                                {
                                                                  "type": "null"
                                                                }
                                                              ]
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "enum"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "array"
                                                          },
                                                          "items": {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              }
                                                            },
                                                            "required": [
                                                              "type"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "items"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "object"
                                                          },
                                                          "properties": {
                                                            "type": "object",
                                                            "propertyNames": {
                                                              "type": "string"
                                                            },
                                                            "additionalProperties": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "object",
                                                                  "properties": {},
                                                                  "additionalProperties": false
                                                                },
                                                                {
                                                                  "type": "object",
                                                                  "properties": {
                                                                    "type": {
                                                                      "type": "string",
                                                                      "enum": [
                                                                        "string",
                                                                        "number",
                                                                        "boolean",
                                                                        "null"
                                                                      ]
                                                                    }
                                                                  },
                                                                  "required": [
                                                                    "type"
                                                                  ],
                                                                  "additionalProperties": false
                                                                }
                                                              ]
                                                            }
                                                          },
                                                          "required": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "string"
                                                            }
                                                          },
                                                          "additionalProperties": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "properties"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "declareConstants": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "schema": {
                                                    "anyOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          },
                                                          "enum": {
                                                            "minItems": 1,
                                                            "type": "array",
                                                            "items": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "string"
                                                                },
                                                                {
                                                                  "type": "number"
                                                                },
                                                                {
                                                                  "type": "boolean"
                                                                },
                                                                {
                                                                  "type": "null"
                                                                }
                                                              ]
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "enum"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "array"
                                                          },
                                                          "items": {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              }
                                                            },
                                                            "required": [
                                                              "type"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "items"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "object"
                                                          },
                                                          "properties": {
                                                            "type": "object",
                                                            "propertyNames": {
                                                              "type": "string"
                                                            },
                                                            "additionalProperties": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "object",
                                                                  "properties": {},
                                                                  "additionalProperties": false
                                                                },
                                                                {
                                                                  "type": "object",
                                                                  "properties": {
                                                                    "type": {
                                                                      "type": "string",
                                                                      "enum": [
                                                                        "string",
                                                                        "number",
                                                                        "boolean",
                                                                        "null"
                                                                      ]
                                                                    }
                                                                  },
                                                                  "required": [
                                                                    "type"
                                                                  ],
                                                                  "additionalProperties": false
                                                                }
                                                              ]
                                                            }
                                                          },
                                                          "required": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "string"
                                                            }
                                                          },
                                                          "additionalProperties": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "properties"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "declareFunctions": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "receiveParamOfType": {
                                                    "type": "string"
                                                  },
                                                  "receiveParamsOfTypes": {
                                                    "type": "array",
                                                    "items": {
                                                      "type": "string"
                                                    }
                                                  },
                                                  "returnValueOfType": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "declareInterfaces": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "extend": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string"
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string"
                                                          },
                                                          "allowOmissions": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "declareClasses": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "extend": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string"
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string"
                                                          },
                                                          "allowOmissions": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  },
                                                  "implement": {
                                                    "type": "array",
                                                    "items": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string"
                                                        },
                                                        {
                                                          "type": "object",
                                                          "properties": {
                                                            "type": {
                                                              "type": "string"
                                                            },
                                                            "allowOmissions": {
                                                              "type": "boolean"
                                                            }
                                                          },
                                                          "required": [
                                                            "type"
                                                          ],
                                                          "additionalProperties": false
                                                        }
                                                      ]
                                                    }
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "export": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "from": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "exportTypes": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "anyOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "name": {
                                                        "type": "string"
                                                      },
                                                      "schema": {
                                                        "anyOf": [
                                                          {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              },
                                                              "enum": {
                                                                "minItems": 1,
                                                                "type": "array",
                                                                "items": {
                                                                  "anyOf": [
                                                                    {
                                                                      "type": "string"
                                                                    },
                                                                    {
                                                                      "type": "number"
                                                                    },
                                                                    {
                                                                      "type": "boolean"
                                                                    },
                                                                    {
                                                                      "type": "null"
                                                                    }
                                                                  ]
                                                                }
                                                              }
                                                            },
                                                            "required": [
                                                              "type",
                                                              "enum"
                                                            ],
                                                            "additionalProperties": false
                                                          },
                                                          {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "const": "array"
                                                              },
                                                              "items": {
                                                                "type": "object",
                                                                "properties": {
                                                                  "type": {
                                                                    "type": "string",
                                                                    "enum": [
                                                                      "string",
                                                                      "number",
                                                                      "boolean",
                                                                      "null"
                                                                    ]
                                                                  }
                                                                },
                                                                "required": [
                                                                  "type"
                                                                ],
                                                                "additionalProperties": false
                                                              }
                                                            },
                                                            "required": [
                                                              "type",
                                                              "items"
                                                            ],
                                                            "additionalProperties": false
                                                          },
                                                          {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "const": "object"
                                                              },
                                                              "properties": {
                                                                "type": "object",
                                                                "propertyNames": {
                                                                  "type": "string"
                                                                },
                                                                "additionalProperties": {
                                                                  "anyOf": [
                                                                    {
                                                                      "type": "object",
                                                                      "properties": {},
                                                                      "additionalProperties": false
                                                                    },
                                                                    {
                                                                      "type": "object",
                                                                      "properties": {
                                                                        "type": {
                                                                          "type": "string",
                                                                          "enum": [
                                                                            "string",
                                                                            "number",
                                                                            "boolean",
                                                                            "null"
                                                                          ]
                                                                        }
                                                                      },
                                                                      "required": [
                                                                        "type"
                                                                      ],
                                                                      "additionalProperties": false
                                                                    }
                                                                  ]
                                                                }
                                                              },
                                                              "required": {
                                                                "type": "array",
                                                                "items": {
                                                                  "type": "string"
                                                                }
                                                              },
                                                              "additionalProperties": {
                                                                "type": "boolean"
                                                              }
                                                            },
                                                            "required": [
                                                              "type",
                                                              "properties"
                                                            ],
                                                            "additionalProperties": false
                                                          },
                                                          {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              }
                                                            },
                                                            "required": [
                                                              "type"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "name"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "name": {
                                                        "type": "string"
                                                      },
                                                      "from": {
                                                        "type": "string"
                                                      }
                                                    },
                                                    "required": [
                                                      "name",
                                                      "from"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              }
                                            ]
                                          }
                                        },
                                        "exportConstants": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "from": {
                                                    "type": "string"
                                                  },
                                                  "schema": {
                                                    "anyOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          },
                                                          "enum": {
                                                            "minItems": 1,
                                                            "type": "array",
                                                            "items": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "string"
                                                                },
                                                                {
                                                                  "type": "number"
                                                                },
                                                                {
                                                                  "type": "boolean"
                                                                },
                                                                {
                                                                  "type": "null"
                                                                }
                                                              ]
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "enum"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "array"
                                                          },
                                                          "items": {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              }
                                                            },
                                                            "required": [
                                                              "type"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "items"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "object"
                                                          },
                                                          "properties": {
                                                            "type": "object",
                                                            "propertyNames": {
                                                              "type": "string"
                                                            },
                                                            "additionalProperties": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "object",
                                                                  "properties": {},
                                                                  "additionalProperties": false
                                                                },
                                                                {
                                                                  "type": "object",
                                                                  "properties": {
                                                                    "type": {
                                                                      "type": "string",
                                                                      "enum": [
                                                                        "string",
                                                                        "number",
                                                                        "boolean",
                                                                        "null"
                                                                      ]
                                                                    }
                                                                  },
                                                                  "required": [
                                                                    "type"
                                                                  ],
                                                                  "additionalProperties": false
                                                                }
                                                              ]
                                                            }
                                                          },
                                                          "required": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "string"
                                                            }
                                                          },
                                                          "additionalProperties": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "properties"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "exportFunctions": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "receiveParamOfType": {
                                                    "type": "string"
                                                  },
                                                  "receiveParamsOfTypes": {
                                                    "type": "array",
                                                    "items": {
                                                      "type": "string"
                                                    }
                                                  },
                                                  "returnValueOfType": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "exportInterfaces": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "extend": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string"
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string"
                                                          },
                                                          "allowOmissions": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "exportClasses": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "extend": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string"
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string"
                                                          },
                                                          "allowOmissions": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  },
                                                  "implement": {
                                                    "type": "array",
                                                    "items": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string"
                                                        },
                                                        {
                                                          "type": "object",
                                                          "properties": {
                                                            "type": {
                                                              "type": "string"
                                                            },
                                                            "allowOmissions": {
                                                              "type": "boolean"
                                                            }
                                                          },
                                                          "required": [
                                                            "type"
                                                          ],
                                                          "additionalProperties": false
                                                        }
                                                      ]
                                                    }
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "import": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "from": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "importFrom": {
                                          "anyOf": [
                                            {
                                              "type": "string"
                                            },
                                            {
                                              "type": "array",
                                              "items": {
                                                "type": "string"
                                              }
                                            }
                                          ]
                                        },
                                        "importTypes": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "from": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "importFromCurrentDir": {
                                          "type": "boolean"
                                        },
                                        "importFromParents": {
                                          "type": "boolean"
                                        },
                                        "importFromExternals": {
                                          "type": "boolean"
                                        },
                                        "importTypesFromCurrentDir": {
                                          "type": "boolean"
                                        },
                                        "importTypesFromParents": {
                                          "type": "boolean"
                                        },
                                        "importTypesFromExternals": {
                                          "type": "boolean"
                                        },
                                        "useDeclarationOrder": {
                                          "type": "array",
                                          "items": {
                                            "type": "string"
                                          }
                                        },
                                        "areBarrelFiles": {
                                          "type": "boolean"
                                        }
                                      },
                                      "additionalProperties": false
                                    }
                                  },
                                  "required": [
                                    "must"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string",
                                      "pattern": "^[a-z0-9-]+$"
                                    },
                                    "description": {
                                      "type": "string"
                                    },
                                    "if": {
                                      "anyOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "hasFile": {
                                              "type": "string"
                                            }
                                          },
                                          "required": [
                                            "hasFile"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "placeholderSatisfies": {
                                              "type": "string"
                                            }
                                          },
                                          "required": [
                                            "placeholderSatisfies"
                                          ],
                                          "additionalProperties": false
                                        }
                                      ]
                                    },
                                    "for": {
                                      "type": "object",
                                      "properties": {
                                        "files": {
                                          "anyOf": [
                                            {
                                              "type": "string"
                                            },
                                            {
                                              "type": "array",
                                              "items": {
                                                "type": "string"
                                              }
                                            }
                                          ]
                                        }
                                      },
                                      "required": [
                                        "files"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "excludeFiles": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "must": {
                                      "type": "object",
                                      "properties": {
                                        "haveType": {
                                          "type": "string",
                                          "enum": [
                                            "file",
                                            "directory"
                                          ]
                                        },
                                        "haveFiles": {
                                          "type": "array",
                                          "items": {
                                            "type": "string"
                                          }
                                        },
                                        "declareTypes": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "schema": {
                                                    "anyOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          },
                                                          "enum": {
                                                            "minItems": 1,
                                                            "type": "array",
                                                            "items": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "string"
                                                                },
                                                                {
                                                                  "type": "number"
                                                                },
                                                                {
                                                                  "type": "boolean"
                                                                },
                                                                {
                                                                  "type": "null"
                                                                }
                                                              ]
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "enum"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "array"
                                                          },
                                                          "items": {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              }
                                                            },
                                                            "required": [
                                                              "type"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "items"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "object"
                                                          },
                                                          "properties": {
                                                            "type": "object",
                                                            "propertyNames": {
                                                              "type": "string"
                                                            },
                                                            "additionalProperties": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "object",
                                                                  "properties": {},
                                                                  "additionalProperties": false
                                                                },
                                                                {
                                                                  "type": "object",
                                                                  "properties": {
                                                                    "type": {
                                                                      "type": "string",
                                                                      "enum": [
                                                                        "string",
                                                                        "number",
                                                                        "boolean",
                                                                        "null"
                                                                      ]
                                                                    }
                                                                  },
                                                                  "required": [
                                                                    "type"
                                                                  ],
                                                                  "additionalProperties": false
                                                                }
                                                              ]
                                                            }
                                                          },
                                                          "required": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "string"
                                                            }
                                                          },
                                                          "additionalProperties": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "properties"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "declareConstants": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "schema": {
                                                    "anyOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          },
                                                          "enum": {
                                                            "minItems": 1,
                                                            "type": "array",
                                                            "items": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "string"
                                                                },
                                                                {
                                                                  "type": "number"
                                                                },
                                                                {
                                                                  "type": "boolean"
                                                                },
                                                                {
                                                                  "type": "null"
                                                                }
                                                              ]
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "enum"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "array"
                                                          },
                                                          "items": {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              }
                                                            },
                                                            "required": [
                                                              "type"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "items"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "object"
                                                          },
                                                          "properties": {
                                                            "type": "object",
                                                            "propertyNames": {
                                                              "type": "string"
                                                            },
                                                            "additionalProperties": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "object",
                                                                  "properties": {},
                                                                  "additionalProperties": false
                                                                },
                                                                {
                                                                  "type": "object",
                                                                  "properties": {
                                                                    "type": {
                                                                      "type": "string",
                                                                      "enum": [
                                                                        "string",
                                                                        "number",
                                                                        "boolean",
                                                                        "null"
                                                                      ]
                                                                    }
                                                                  },
                                                                  "required": [
                                                                    "type"
                                                                  ],
                                                                  "additionalProperties": false
                                                                }
                                                              ]
                                                            }
                                                          },
                                                          "required": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "string"
                                                            }
                                                          },
                                                          "additionalProperties": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "properties"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "declareFunctions": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "receiveParamOfType": {
                                                    "type": "string"
                                                  },
                                                  "receiveParamsOfTypes": {
                                                    "type": "array",
                                                    "items": {
                                                      "type": "string"
                                                    }
                                                  },
                                                  "returnValueOfType": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "declareInterfaces": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "extend": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string"
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string"
                                                          },
                                                          "allowOmissions": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "declareClasses": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "extend": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string"
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string"
                                                          },
                                                          "allowOmissions": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  },
                                                  "implement": {
                                                    "type": "array",
                                                    "items": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string"
                                                        },
                                                        {
                                                          "type": "object",
                                                          "properties": {
                                                            "type": {
                                                              "type": "string"
                                                            },
                                                            "allowOmissions": {
                                                              "type": "boolean"
                                                            }
                                                          },
                                                          "required": [
                                                            "type"
                                                          ],
                                                          "additionalProperties": false
                                                        }
                                                      ]
                                                    }
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "export": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "from": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "exportTypes": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "anyOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "name": {
                                                        "type": "string"
                                                      },
                                                      "schema": {
                                                        "anyOf": [
                                                          {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              },
                                                              "enum": {
                                                                "minItems": 1,
                                                                "type": "array",
                                                                "items": {
                                                                  "anyOf": [
                                                                    {
                                                                      "type": "string"
                                                                    },
                                                                    {
                                                                      "type": "number"
                                                                    },
                                                                    {
                                                                      "type": "boolean"
                                                                    },
                                                                    {
                                                                      "type": "null"
                                                                    }
                                                                  ]
                                                                }
                                                              }
                                                            },
                                                            "required": [
                                                              "type",
                                                              "enum"
                                                            ],
                                                            "additionalProperties": false
                                                          },
                                                          {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "const": "array"
                                                              },
                                                              "items": {
                                                                "type": "object",
                                                                "properties": {
                                                                  "type": {
                                                                    "type": "string",
                                                                    "enum": [
                                                                      "string",
                                                                      "number",
                                                                      "boolean",
                                                                      "null"
                                                                    ]
                                                                  }
                                                                },
                                                                "required": [
                                                                  "type"
                                                                ],
                                                                "additionalProperties": false
                                                              }
                                                            },
                                                            "required": [
                                                              "type",
                                                              "items"
                                                            ],
                                                            "additionalProperties": false
                                                          },
                                                          {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "const": "object"
                                                              },
                                                              "properties": {
                                                                "type": "object",
                                                                "propertyNames": {
                                                                  "type": "string"
                                                                },
                                                                "additionalProperties": {
                                                                  "anyOf": [
                                                                    {
                                                                      "type": "object",
                                                                      "properties": {},
                                                                      "additionalProperties": false
                                                                    },
                                                                    {
                                                                      "type": "object",
                                                                      "properties": {
                                                                        "type": {
                                                                          "type": "string",
                                                                          "enum": [
                                                                            "string",
                                                                            "number",
                                                                            "boolean",
                                                                            "null"
                                                                          ]
                                                                        }
                                                                      },
                                                                      "required": [
                                                                        "type"
                                                                      ],
                                                                      "additionalProperties": false
                                                                    }
                                                                  ]
                                                                }
                                                              },
                                                              "required": {
                                                                "type": "array",
                                                                "items": {
                                                                  "type": "string"
                                                                }
                                                              },
                                                              "additionalProperties": {
                                                                "type": "boolean"
                                                              }
                                                            },
                                                            "required": [
                                                              "type",
                                                              "properties"
                                                            ],
                                                            "additionalProperties": false
                                                          },
                                                          {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              }
                                                            },
                                                            "required": [
                                                              "type"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "name"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "name": {
                                                        "type": "string"
                                                      },
                                                      "from": {
                                                        "type": "string"
                                                      }
                                                    },
                                                    "required": [
                                                      "name",
                                                      "from"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              }
                                            ]
                                          }
                                        },
                                        "exportConstants": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "from": {
                                                    "type": "string"
                                                  },
                                                  "schema": {
                                                    "anyOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          },
                                                          "enum": {
                                                            "minItems": 1,
                                                            "type": "array",
                                                            "items": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "string"
                                                                },
                                                                {
                                                                  "type": "number"
                                                                },
                                                                {
                                                                  "type": "boolean"
                                                                },
                                                                {
                                                                  "type": "null"
                                                                }
                                                              ]
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "enum"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "array"
                                                          },
                                                          "items": {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              }
                                                            },
                                                            "required": [
                                                              "type"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "items"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "object"
                                                          },
                                                          "properties": {
                                                            "type": "object",
                                                            "propertyNames": {
                                                              "type": "string"
                                                            },
                                                            "additionalProperties": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "object",
                                                                  "properties": {},
                                                                  "additionalProperties": false
                                                                },
                                                                {
                                                                  "type": "object",
                                                                  "properties": {
                                                                    "type": {
                                                                      "type": "string",
                                                                      "enum": [
                                                                        "string",
                                                                        "number",
                                                                        "boolean",
                                                                        "null"
                                                                      ]
                                                                    }
                                                                  },
                                                                  "required": [
                                                                    "type"
                                                                  ],
                                                                  "additionalProperties": false
                                                                }
                                                              ]
                                                            }
                                                          },
                                                          "required": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "string"
                                                            }
                                                          },
                                                          "additionalProperties": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "properties"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "exportFunctions": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "receiveParamOfType": {
                                                    "type": "string"
                                                  },
                                                  "receiveParamsOfTypes": {
                                                    "type": "array",
                                                    "items": {
                                                      "type": "string"
                                                    }
                                                  },
                                                  "returnValueOfType": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "exportInterfaces": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "extend": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string"
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string"
                                                          },
                                                          "allowOmissions": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "exportClasses": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "extend": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string"
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string"
                                                          },
                                                          "allowOmissions": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  },
                                                  "implement": {
                                                    "type": "array",
                                                    "items": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string"
                                                        },
                                                        {
                                                          "type": "object",
                                                          "properties": {
                                                            "type": {
                                                              "type": "string"
                                                            },
                                                            "allowOmissions": {
                                                              "type": "boolean"
                                                            }
                                                          },
                                                          "required": [
                                                            "type"
                                                          ],
                                                          "additionalProperties": false
                                                        }
                                                      ]
                                                    }
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "import": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "from": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "importFrom": {
                                          "anyOf": [
                                            {
                                              "type": "string"
                                            },
                                            {
                                              "type": "array",
                                              "items": {
                                                "type": "string"
                                              }
                                            }
                                          ]
                                        },
                                        "importTypes": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "from": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "importFromCurrentDir": {
                                          "type": "boolean"
                                        },
                                        "importFromParents": {
                                          "type": "boolean"
                                        },
                                        "importFromExternals": {
                                          "type": "boolean"
                                        },
                                        "importTypesFromCurrentDir": {
                                          "type": "boolean"
                                        },
                                        "importTypesFromParents": {
                                          "type": "boolean"
                                        },
                                        "importTypesFromExternals": {
                                          "type": "boolean"
                                        },
                                        "useDeclarationOrder": {
                                          "type": "array",
                                          "items": {
                                            "type": "string"
                                          }
                                        },
                                        "areBarrelFiles": {
                                          "type": "boolean"
                                        }
                                      },
                                      "additionalProperties": false
                                    },
                                    "mustNot": {
                                      "type": "object",
                                      "properties": {
                                        "haveType": {
                                          "type": "string",
                                          "enum": [
                                            "file",
                                            "directory"
                                          ]
                                        },
                                        "haveFiles": {
                                          "type": "array",
                                          "items": {
                                            "type": "string"
                                          }
                                        },
                                        "declareTypes": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "schema": {
                                                    "anyOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          },
                                                          "enum": {
                                                            "minItems": 1,
                                                            "type": "array",
                                                            "items": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "string"
                                                                },
                                                                {
                                                                  "type": "number"
                                                                },
                                                                {
                                                                  "type": "boolean"
                                                                },
                                                                {
                                                                  "type": "null"
                                                                }
                                                              ]
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "enum"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "array"
                                                          },
                                                          "items": {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              }
                                                            },
                                                            "required": [
                                                              "type"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "items"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "object"
                                                          },
                                                          "properties": {
                                                            "type": "object",
                                                            "propertyNames": {
                                                              "type": "string"
                                                            },
                                                            "additionalProperties": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "object",
                                                                  "properties": {},
                                                                  "additionalProperties": false
                                                                },
                                                                {
                                                                  "type": "object",
                                                                  "properties": {
                                                                    "type": {
                                                                      "type": "string",
                                                                      "enum": [
                                                                        "string",
                                                                        "number",
                                                                        "boolean",
                                                                        "null"
                                                                      ]
                                                                    }
                                                                  },
                                                                  "required": [
                                                                    "type"
                                                                  ],
                                                                  "additionalProperties": false
                                                                }
                                                              ]
                                                            }
                                                          },
                                                          "required": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "string"
                                                            }
                                                          },
                                                          "additionalProperties": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "properties"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "declareConstants": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "schema": {
                                                    "anyOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          },
                                                          "enum": {
                                                            "minItems": 1,
                                                            "type": "array",
                                                            "items": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "string"
                                                                },
                                                                {
                                                                  "type": "number"
                                                                },
                                                                {
                                                                  "type": "boolean"
                                                                },
                                                                {
                                                                  "type": "null"
                                                                }
                                                              ]
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "enum"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "array"
                                                          },
                                                          "items": {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              }
                                                            },
                                                            "required": [
                                                              "type"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "items"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "object"
                                                          },
                                                          "properties": {
                                                            "type": "object",
                                                            "propertyNames": {
                                                              "type": "string"
                                                            },
                                                            "additionalProperties": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "object",
                                                                  "properties": {},
                                                                  "additionalProperties": false
                                                                },
                                                                {
                                                                  "type": "object",
                                                                  "properties": {
                                                                    "type": {
                                                                      "type": "string",
                                                                      "enum": [
                                                                        "string",
                                                                        "number",
                                                                        "boolean",
                                                                        "null"
                                                                      ]
                                                                    }
                                                                  },
                                                                  "required": [
                                                                    "type"
                                                                  ],
                                                                  "additionalProperties": false
                                                                }
                                                              ]
                                                            }
                                                          },
                                                          "required": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "string"
                                                            }
                                                          },
                                                          "additionalProperties": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "properties"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "declareFunctions": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "receiveParamOfType": {
                                                    "type": "string"
                                                  },
                                                  "receiveParamsOfTypes": {
                                                    "type": "array",
                                                    "items": {
                                                      "type": "string"
                                                    }
                                                  },
                                                  "returnValueOfType": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "declareInterfaces": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "extend": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string"
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string"
                                                          },
                                                          "allowOmissions": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "declareClasses": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "extend": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string"
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string"
                                                          },
                                                          "allowOmissions": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  },
                                                  "implement": {
                                                    "type": "array",
                                                    "items": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string"
                                                        },
                                                        {
                                                          "type": "object",
                                                          "properties": {
                                                            "type": {
                                                              "type": "string"
                                                            },
                                                            "allowOmissions": {
                                                              "type": "boolean"
                                                            }
                                                          },
                                                          "required": [
                                                            "type"
                                                          ],
                                                          "additionalProperties": false
                                                        }
                                                      ]
                                                    }
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "export": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "from": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "exportTypes": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "anyOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "name": {
                                                        "type": "string"
                                                      },
                                                      "schema": {
                                                        "anyOf": [
                                                          {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              },
                                                              "enum": {
                                                                "minItems": 1,
                                                                "type": "array",
                                                                "items": {
                                                                  "anyOf": [
                                                                    {
                                                                      "type": "string"
                                                                    },
                                                                    {
                                                                      "type": "number"
                                                                    },
                                                                    {
                                                                      "type": "boolean"
                                                                    },
                                                                    {
                                                                      "type": "null"
                                                                    }
                                                                  ]
                                                                }
                                                              }
                                                            },
                                                            "required": [
                                                              "type",
                                                              "enum"
                                                            ],
                                                            "additionalProperties": false
                                                          },
                                                          {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "const": "array"
                                                              },
                                                              "items": {
                                                                "type": "object",
                                                                "properties": {
                                                                  "type": {
                                                                    "type": "string",
                                                                    "enum": [
                                                                      "string",
                                                                      "number",
                                                                      "boolean",
                                                                      "null"
                                                                    ]
                                                                  }
                                                                },
                                                                "required": [
                                                                  "type"
                                                                ],
                                                                "additionalProperties": false
                                                              }
                                                            },
                                                            "required": [
                                                              "type",
                                                              "items"
                                                            ],
                                                            "additionalProperties": false
                                                          },
                                                          {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "const": "object"
                                                              },
                                                              "properties": {
                                                                "type": "object",
                                                                "propertyNames": {
                                                                  "type": "string"
                                                                },
                                                                "additionalProperties": {
                                                                  "anyOf": [
                                                                    {
                                                                      "type": "object",
                                                                      "properties": {},
                                                                      "additionalProperties": false
                                                                    },
                                                                    {
                                                                      "type": "object",
                                                                      "properties": {
                                                                        "type": {
                                                                          "type": "string",
                                                                          "enum": [
                                                                            "string",
                                                                            "number",
                                                                            "boolean",
                                                                            "null"
                                                                          ]
                                                                        }
                                                                      },
                                                                      "required": [
                                                                        "type"
                                                                      ],
                                                                      "additionalProperties": false
                                                                    }
                                                                  ]
                                                                }
                                                              },
                                                              "required": {
                                                                "type": "array",
                                                                "items": {
                                                                  "type": "string"
                                                                }
                                                              },
                                                              "additionalProperties": {
                                                                "type": "boolean"
                                                              }
                                                            },
                                                            "required": [
                                                              "type",
                                                              "properties"
                                                            ],
                                                            "additionalProperties": false
                                                          },
                                                          {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              }
                                                            },
                                                            "required": [
                                                              "type"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "name"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "name": {
                                                        "type": "string"
                                                      },
                                                      "from": {
                                                        "type": "string"
                                                      }
                                                    },
                                                    "required": [
                                                      "name",
                                                      "from"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              }
                                            ]
                                          }
                                        },
                                        "exportConstants": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "from": {
                                                    "type": "string"
                                                  },
                                                  "schema": {
                                                    "anyOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          },
                                                          "enum": {
                                                            "minItems": 1,
                                                            "type": "array",
                                                            "items": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "string"
                                                                },
                                                                {
                                                                  "type": "number"
                                                                },
                                                                {
                                                                  "type": "boolean"
                                                                },
                                                                {
                                                                  "type": "null"
                                                                }
                                                              ]
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "enum"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "array"
                                                          },
                                                          "items": {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              }
                                                            },
                                                            "required": [
                                                              "type"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "items"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "object"
                                                          },
                                                          "properties": {
                                                            "type": "object",
                                                            "propertyNames": {
                                                              "type": "string"
                                                            },
                                                            "additionalProperties": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "object",
                                                                  "properties": {},
                                                                  "additionalProperties": false
                                                                },
                                                                {
                                                                  "type": "object",
                                                                  "properties": {
                                                                    "type": {
                                                                      "type": "string",
                                                                      "enum": [
                                                                        "string",
                                                                        "number",
                                                                        "boolean",
                                                                        "null"
                                                                      ]
                                                                    }
                                                                  },
                                                                  "required": [
                                                                    "type"
                                                                  ],
                                                                  "additionalProperties": false
                                                                }
                                                              ]
                                                            }
                                                          },
                                                          "required": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "string"
                                                            }
                                                          },
                                                          "additionalProperties": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "properties"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "exportFunctions": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "receiveParamOfType": {
                                                    "type": "string"
                                                  },
                                                  "receiveParamsOfTypes": {
                                                    "type": "array",
                                                    "items": {
                                                      "type": "string"
                                                    }
                                                  },
                                                  "returnValueOfType": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "exportInterfaces": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "extend": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string"
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string"
                                                          },
                                                          "allowOmissions": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "exportClasses": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "extend": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string"
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string"
                                                          },
                                                          "allowOmissions": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  },
                                                  "implement": {
                                                    "type": "array",
                                                    "items": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string"
                                                        },
                                                        {
                                                          "type": "object",
                                                          "properties": {
                                                            "type": {
                                                              "type": "string"
                                                            },
                                                            "allowOmissions": {
                                                              "type": "boolean"
                                                            }
                                                          },
                                                          "required": [
                                                            "type"
                                                          ],
                                                          "additionalProperties": false
                                                        }
                                                      ]
                                                    }
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "import": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "from": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "importFrom": {
                                          "anyOf": [
                                            {
                                              "type": "string"
                                            },
                                            {
                                              "type": "array",
                                              "items": {
                                                "type": "string"
                                              }
                                            }
                                          ]
                                        },
                                        "importTypes": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "from": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "importFromCurrentDir": {
                                          "type": "boolean"
                                        },
                                        "importFromParents": {
                                          "type": "boolean"
                                        },
                                        "importFromExternals": {
                                          "type": "boolean"
                                        },
                                        "importTypesFromCurrentDir": {
                                          "type": "boolean"
                                        },
                                        "importTypesFromParents": {
                                          "type": "boolean"
                                        },
                                        "importTypesFromExternals": {
                                          "type": "boolean"
                                        },
                                        "useDeclarationOrder": {
                                          "type": "array",
                                          "items": {
                                            "type": "string"
                                          }
                                        },
                                        "areBarrelFiles": {
                                          "type": "boolean"
                                        }
                                      },
                                      "additionalProperties": false
                                    }
                                  },
                                  "required": [
                                    "mustNot"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            {
                              "type": "object",
                              "properties": {
                                "use": {
                                  "type": "string",
                                  "pattern": "^[a-z0-9-]+\\/[a-z0-9-]+$"
                                },
                                "name": {
                                  "type": "string",
                                  "pattern": "^[a-z0-9-]+$"
                                },
                                "description": {
                                  "type": "string"
                                },
                                "if": {
                                  "anyOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "hasFile": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "hasFile"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "placeholderSatisfies": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "placeholderSatisfies"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "for": {
                                  "type": "object",
                                  "properties": {
                                    "files": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "array",
                                          "items": {
                                            "type": "string"
                                          }
                                        }
                                      ]
                                    }
                                  },
                                  "required": [
                                    "files"
                                  ],
                                  "additionalProperties": false
                                },
                                "excludeFiles": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                },
                                "must": {
                                  "type": "object",
                                  "properties": {
                                    "haveType": {
                                      "type": "string",
                                      "enum": [
                                        "file",
                                        "directory"
                                      ]
                                    },
                                    "haveFiles": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "declareTypes": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "schema": {
                                                "anyOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "enum": [
                                                          "string",
                                                          "number",
                                                          "boolean",
                                                          "null"
                                                        ]
                                                      },
                                                      "enum": {
                                                        "minItems": 1,
                                                        "type": "array",
                                                        "items": {
                                                          "anyOf": [
                                                            {
                                                              "type": "string"
                                                            },
                                                            {
                                                              "type": "number"
                                                            },
                                                            {
                                                              "type": "boolean"
                                                            },
                                                            {
                                                              "type": "null"
                                                            }
                                                          ]
                                                        }
                                                      }
                                                    },
                                                    "required": [
                                                      "type",
                                                      "enum"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "const": "array"
                                                      },
                                                      "items": {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    },
                                                    "required": [
                                                      "type",
                                                      "items"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "const": "object"
                                                      },
                                                      "properties": {
                                                        "type": "object",
                                                        "propertyNames": {
                                                          "type": "string"
                                                        },
                                                        "additionalProperties": {
                                                          "anyOf": [
                                                            {
                                                              "type": "object",
                                                              "properties": {},
                                                              "additionalProperties": false
                                                            },
                                                            {
                                                              "type": "object",
                                                              "properties": {
                                                                "type": {
                                                                  "type": "string",
                                                                  "enum": [
                                                                    "string",
                                                                    "number",
                                                                    "boolean",
                                                                    "null"
                                                                  ]
                                                                }
                                                              },
                                                              "required": [
                                                                "type"
                                                              ],
                                                              "additionalProperties": false
                                                            }
                                                          ]
                                                        }
                                                      },
                                                      "required": {
                                                        "type": "array",
                                                        "items": {
                                                          "type": "string"
                                                        }
                                                      },
                                                      "additionalProperties": {
                                                        "type": "boolean"
                                                      }
                                                    },
                                                    "required": [
                                                      "type",
                                                      "properties"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "enum": [
                                                          "string",
                                                          "number",
                                                          "boolean",
                                                          "null"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "type"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "declareConstants": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "schema": {
                                                "anyOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "enum": [
                                                          "string",
                                                          "number",
                                                          "boolean",
                                                          "null"
                                                        ]
                                                      },
                                                      "enum": {
                                                        "minItems": 1,
                                                        "type": "array",
                                                        "items": {
                                                          "anyOf": [
                                                            {
                                                              "type": "string"
                                                            },
                                                            {
                                                              "type": "number"
                                                            },
                                                            {
                                                              "type": "boolean"
                                                            },
                                                            {
                                                              "type": "null"
                                                            }
                                                          ]
                                                        }
                                                      }
                                                    },
                                                    "required": [
                                                      "type",
                                                      "enum"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "const": "array"
                                                      },
                                                      "items": {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    },
                                                    "required": [
                                                      "type",
                                                      "items"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "const": "object"
                                                      },
                                                      "properties": {
                                                        "type": "object",
                                                        "propertyNames": {
                                                          "type": "string"
                                                        },
                                                        "additionalProperties": {
                                                          "anyOf": [
                                                            {
                                                              "type": "object",
                                                              "properties": {},
                                                              "additionalProperties": false
                                                            },
                                                            {
                                                              "type": "object",
                                                              "properties": {
                                                                "type": {
                                                                  "type": "string",
                                                                  "enum": [
                                                                    "string",
                                                                    "number",
                                                                    "boolean",
                                                                    "null"
                                                                  ]
                                                                }
                                                              },
                                                              "required": [
                                                                "type"
                                                              ],
                                                              "additionalProperties": false
                                                            }
                                                          ]
                                                        }
                                                      },
                                                      "required": {
                                                        "type": "array",
                                                        "items": {
                                                          "type": "string"
                                                        }
                                                      },
                                                      "additionalProperties": {
                                                        "type": "boolean"
                                                      }
                                                    },
                                                    "required": [
                                                      "type",
                                                      "properties"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "enum": [
                                                          "string",
                                                          "number",
                                                          "boolean",
                                                          "null"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "type"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "declareFunctions": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "receiveParamOfType": {
                                                "type": "string"
                                              },
                                              "receiveParamsOfTypes": {
                                                "type": "array",
                                                "items": {
                                                  "type": "string"
                                                }
                                              },
                                              "returnValueOfType": {
                                                "type": "string"
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "declareInterfaces": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "extend": {
                                                "anyOf": [
                                                  {
                                                    "type": "string"
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string"
                                                      },
                                                      "allowOmissions": {
                                                        "type": "boolean"
                                                      }
                                                    },
                                                    "required": [
                                                      "type"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "declareClasses": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "extend": {
                                                "anyOf": [
                                                  {
                                                    "type": "string"
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string"
                                                      },
                                                      "allowOmissions": {
                                                        "type": "boolean"
                                                      }
                                                    },
                                                    "required": [
                                                      "type"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              },
                                              "implement": {
                                                "type": "array",
                                                "items": {
                                                  "anyOf": [
                                                    {
                                                      "type": "string"
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "type": {
                                                          "type": "string"
                                                        },
                                                        "allowOmissions": {
                                                          "type": "boolean"
                                                        }
                                                      },
                                                      "required": [
                                                        "type"
                                                      ],
                                                      "additionalProperties": false
                                                    }
                                                  ]
                                                }
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "export": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "from": {
                                                "type": "string"
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "exportTypes": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "anyOf": [
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "schema": {
                                                    "anyOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          },
                                                          "enum": {
                                                            "minItems": 1,
                                                            "type": "array",
                                                            "items": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "string"
                                                                },
                                                                {
                                                                  "type": "number"
                                                                },
                                                                {
                                                                  "type": "boolean"
                                                                },
                                                                {
                                                                  "type": "null"
                                                                }
                                                              ]
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "enum"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "array"
                                                          },
                                                          "items": {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              }
                                                            },
                                                            "required": [
                                                              "type"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "items"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "object"
                                                          },
                                                          "properties": {
                                                            "type": "object",
                                                            "propertyNames": {
                                                              "type": "string"
                                                            },
                                                            "additionalProperties": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "object",
                                                                  "properties": {},
                                                                  "additionalProperties": false
                                                                },
                                                                {
                                                                  "type": "object",
                                                                  "properties": {
                                                                    "type": {
                                                                      "type": "string",
                                                                      "enum": [
                                                                        "string",
                                                                        "number",
                                                                        "boolean",
                                                                        "null"
                                                                      ]
                                                                    }
                                                                  },
                                                                  "required": [
                                                                    "type"
                                                                  ],
                                                                  "additionalProperties": false
                                                                }
                                                              ]
                                                            }
                                                          },
                                                          "required": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "string"
                                                            }
                                                          },
                                                          "additionalProperties": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "properties"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "from": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name",
                                                  "from"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        ]
                                      }
                                    },
                                    "exportConstants": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "from": {
                                                "type": "string"
                                              },
                                              "schema": {
                                                "anyOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "enum": [
                                                          "string",
                                                          "number",
                                                          "boolean",
                                                          "null"
                                                        ]
                                                      },
                                                      "enum": {
                                                        "minItems": 1,
                                                        "type": "array",
                                                        "items": {
                                                          "anyOf": [
                                                            {
                                                              "type": "string"
                                                            },
                                                            {
                                                              "type": "number"
                                                            },
                                                            {
                                                              "type": "boolean"
                                                            },
                                                            {
                                                              "type": "null"
                                                            }
                                                          ]
                                                        }
                                                      }
                                                    },
                                                    "required": [
                                                      "type",
                                                      "enum"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "const": "array"
                                                      },
                                                      "items": {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    },
                                                    "required": [
                                                      "type",
                                                      "items"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "const": "object"
                                                      },
                                                      "properties": {
                                                        "type": "object",
                                                        "propertyNames": {
                                                          "type": "string"
                                                        },
                                                        "additionalProperties": {
                                                          "anyOf": [
                                                            {
                                                              "type": "object",
                                                              "properties": {},
                                                              "additionalProperties": false
                                                            },
                                                            {
                                                              "type": "object",
                                                              "properties": {
                                                                "type": {
                                                                  "type": "string",
                                                                  "enum": [
                                                                    "string",
                                                                    "number",
                                                                    "boolean",
                                                                    "null"
                                                                  ]
                                                                }
                                                              },
                                                              "required": [
                                                                "type"
                                                              ],
                                                              "additionalProperties": false
                                                            }
                                                          ]
                                                        }
                                                      },
                                                      "required": {
                                                        "type": "array",
                                                        "items": {
                                                          "type": "string"
                                                        }
                                                      },
                                                      "additionalProperties": {
                                                        "type": "boolean"
                                                      }
                                                    },
                                                    "required": [
                                                      "type",
                                                      "properties"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "enum": [
                                                          "string",
                                                          "number",
                                                          "boolean",
                                                          "null"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "type"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "exportFunctions": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "receiveParamOfType": {
                                                "type": "string"
                                              },
                                              "receiveParamsOfTypes": {
                                                "type": "array",
                                                "items": {
                                                  "type": "string"
                                                }
                                              },
                                              "returnValueOfType": {
                                                "type": "string"
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "exportInterfaces": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "extend": {
                                                "anyOf": [
                                                  {
                                                    "type": "string"
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string"
                                                      },
                                                      "allowOmissions": {
                                                        "type": "boolean"
                                                      }
                                                    },
                                                    "required": [
                                                      "type"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "exportClasses": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "extend": {
                                                "anyOf": [
                                                  {
                                                    "type": "string"
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string"
                                                      },
                                                      "allowOmissions": {
                                                        "type": "boolean"
                                                      }
                                                    },
                                                    "required": [
                                                      "type"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              },
                                              "implement": {
                                                "type": "array",
                                                "items": {
                                                  "anyOf": [
                                                    {
                                                      "type": "string"
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "type": {
                                                          "type": "string"
                                                        },
                                                        "allowOmissions": {
                                                          "type": "boolean"
                                                        }
                                                      },
                                                      "required": [
                                                        "type"
                                                      ],
                                                      "additionalProperties": false
                                                    }
                                                  ]
                                                }
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "import": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "from": {
                                                "type": "string"
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "importFrom": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "array",
                                          "items": {
                                            "type": "string"
                                          }
                                        }
                                      ]
                                    },
                                    "importTypes": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "from": {
                                                "type": "string"
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "importFromCurrentDir": {
                                      "type": "boolean"
                                    },
                                    "importFromParents": {
                                      "type": "boolean"
                                    },
                                    "importFromExternals": {
                                      "type": "boolean"
                                    },
                                    "importTypesFromCurrentDir": {
                                      "type": "boolean"
                                    },
                                    "importTypesFromParents": {
                                      "type": "boolean"
                                    },
                                    "importTypesFromExternals": {
                                      "type": "boolean"
                                    },
                                    "useDeclarationOrder": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "areBarrelFiles": {
                                      "type": "boolean"
                                    }
                                  },
                                  "additionalProperties": false
                                },
                                "mustNot": {
                                  "type": "object",
                                  "properties": {
                                    "haveType": {
                                      "type": "string",
                                      "enum": [
                                        "file",
                                        "directory"
                                      ]
                                    },
                                    "haveFiles": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "declareTypes": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "schema": {
                                                "anyOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "enum": [
                                                          "string",
                                                          "number",
                                                          "boolean",
                                                          "null"
                                                        ]
                                                      },
                                                      "enum": {
                                                        "minItems": 1,
                                                        "type": "array",
                                                        "items": {
                                                          "anyOf": [
                                                            {
                                                              "type": "string"
                                                            },
                                                            {
                                                              "type": "number"
                                                            },
                                                            {
                                                              "type": "boolean"
                                                            },
                                                            {
                                                              "type": "null"
                                                            }
                                                          ]
                                                        }
                                                      }
                                                    },
                                                    "required": [
                                                      "type",
                                                      "enum"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "const": "array"
                                                      },
                                                      "items": {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    },
                                                    "required": [
                                                      "type",
                                                      "items"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "const": "object"
                                                      },
                                                      "properties": {
                                                        "type": "object",
                                                        "propertyNames": {
                                                          "type": "string"
                                                        },
                                                        "additionalProperties": {
                                                          "anyOf": [
                                                            {
                                                              "type": "object",
                                                              "properties": {},
                                                              "additionalProperties": false
                                                            },
                                                            {
                                                              "type": "object",
                                                              "properties": {
                                                                "type": {
                                                                  "type": "string",
                                                                  "enum": [
                                                                    "string",
                                                                    "number",
                                                                    "boolean",
                                                                    "null"
                                                                  ]
                                                                }
                                                              },
                                                              "required": [
                                                                "type"
                                                              ],
                                                              "additionalProperties": false
                                                            }
                                                          ]
                                                        }
                                                      },
                                                      "required": {
                                                        "type": "array",
                                                        "items": {
                                                          "type": "string"
                                                        }
                                                      },
                                                      "additionalProperties": {
                                                        "type": "boolean"
                                                      }
                                                    },
                                                    "required": [
                                                      "type",
                                                      "properties"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "enum": [
                                                          "string",
                                                          "number",
                                                          "boolean",
                                                          "null"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "type"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "declareConstants": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "schema": {
                                                "anyOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "enum": [
                                                          "string",
                                                          "number",
                                                          "boolean",
                                                          "null"
                                                        ]
                                                      },
                                                      "enum": {
                                                        "minItems": 1,
                                                        "type": "array",
                                                        "items": {
                                                          "anyOf": [
                                                            {
                                                              "type": "string"
                                                            },
                                                            {
                                                              "type": "number"
                                                            },
                                                            {
                                                              "type": "boolean"
                                                            },
                                                            {
                                                              "type": "null"
                                                            }
                                                          ]
                                                        }
                                                      }
                                                    },
                                                    "required": [
                                                      "type",
                                                      "enum"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "const": "array"
                                                      },
                                                      "items": {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    },
                                                    "required": [
                                                      "type",
                                                      "items"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "const": "object"
                                                      },
                                                      "properties": {
                                                        "type": "object",
                                                        "propertyNames": {
                                                          "type": "string"
                                                        },
                                                        "additionalProperties": {
                                                          "anyOf": [
                                                            {
                                                              "type": "object",
                                                              "properties": {},
                                                              "additionalProperties": false
                                                            },
                                                            {
                                                              "type": "object",
                                                              "properties": {
                                                                "type": {
                                                                  "type": "string",
                                                                  "enum": [
                                                                    "string",
                                                                    "number",
                                                                    "boolean",
                                                                    "null"
                                                                  ]
                                                                }
                                                              },
                                                              "required": [
                                                                "type"
                                                              ],
                                                              "additionalProperties": false
                                                            }
                                                          ]
                                                        }
                                                      },
                                                      "required": {
                                                        "type": "array",
                                                        "items": {
                                                          "type": "string"
                                                        }
                                                      },
                                                      "additionalProperties": {
                                                        "type": "boolean"
                                                      }
                                                    },
                                                    "required": [
                                                      "type",
                                                      "properties"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "enum": [
                                                          "string",
                                                          "number",
                                                          "boolean",
                                                          "null"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "type"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "declareFunctions": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "receiveParamOfType": {
                                                "type": "string"
                                              },
                                              "receiveParamsOfTypes": {
                                                "type": "array",
                                                "items": {
                                                  "type": "string"
                                                }
                                              },
                                              "returnValueOfType": {
                                                "type": "string"
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "declareInterfaces": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "extend": {
                                                "anyOf": [
                                                  {
                                                    "type": "string"
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string"
                                                      },
                                                      "allowOmissions": {
                                                        "type": "boolean"
                                                      }
                                                    },
                                                    "required": [
                                                      "type"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "declareClasses": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "extend": {
                                                "anyOf": [
                                                  {
                                                    "type": "string"
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string"
                                                      },
                                                      "allowOmissions": {
                                                        "type": "boolean"
                                                      }
                                                    },
                                                    "required": [
                                                      "type"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              },
                                              "implement": {
                                                "type": "array",
                                                "items": {
                                                  "anyOf": [
                                                    {
                                                      "type": "string"
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "type": {
                                                          "type": "string"
                                                        },
                                                        "allowOmissions": {
                                                          "type": "boolean"
                                                        }
                                                      },
                                                      "required": [
                                                        "type"
                                                      ],
                                                      "additionalProperties": false
                                                    }
                                                  ]
                                                }
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "export": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "from": {
                                                "type": "string"
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "exportTypes": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "anyOf": [
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "schema": {
                                                    "anyOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          },
                                                          "enum": {
                                                            "minItems": 1,
                                                            "type": "array",
                                                            "items": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "string"
                                                                },
                                                                {
                                                                  "type": "number"
                                                                },
                                                                {
                                                                  "type": "boolean"
                                                                },
                                                                {
                                                                  "type": "null"
                                                                }
                                                              ]
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "enum"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "array"
                                                          },
                                                          "items": {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              }
                                                            },
                                                            "required": [
                                                              "type"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "items"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "object"
                                                          },
                                                          "properties": {
                                                            "type": "object",
                                                            "propertyNames": {
                                                              "type": "string"
                                                            },
                                                            "additionalProperties": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "object",
                                                                  "properties": {},
                                                                  "additionalProperties": false
                                                                },
                                                                {
                                                                  "type": "object",
                                                                  "properties": {
                                                                    "type": {
                                                                      "type": "string",
                                                                      "enum": [
                                                                        "string",
                                                                        "number",
                                                                        "boolean",
                                                                        "null"
                                                                      ]
                                                                    }
                                                                  },
                                                                  "required": [
                                                                    "type"
                                                                  ],
                                                                  "additionalProperties": false
                                                                }
                                                              ]
                                                            }
                                                          },
                                                          "required": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "string"
                                                            }
                                                          },
                                                          "additionalProperties": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "properties"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "from": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name",
                                                  "from"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        ]
                                      }
                                    },
                                    "exportConstants": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "from": {
                                                "type": "string"
                                              },
                                              "schema": {
                                                "anyOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "enum": [
                                                          "string",
                                                          "number",
                                                          "boolean",
                                                          "null"
                                                        ]
                                                      },
                                                      "enum": {
                                                        "minItems": 1,
                                                        "type": "array",
                                                        "items": {
                                                          "anyOf": [
                                                            {
                                                              "type": "string"
                                                            },
                                                            {
                                                              "type": "number"
                                                            },
                                                            {
                                                              "type": "boolean"
                                                            },
                                                            {
                                                              "type": "null"
                                                            }
                                                          ]
                                                        }
                                                      }
                                                    },
                                                    "required": [
                                                      "type",
                                                      "enum"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "const": "array"
                                                      },
                                                      "items": {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    },
                                                    "required": [
                                                      "type",
                                                      "items"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "const": "object"
                                                      },
                                                      "properties": {
                                                        "type": "object",
                                                        "propertyNames": {
                                                          "type": "string"
                                                        },
                                                        "additionalProperties": {
                                                          "anyOf": [
                                                            {
                                                              "type": "object",
                                                              "properties": {},
                                                              "additionalProperties": false
                                                            },
                                                            {
                                                              "type": "object",
                                                              "properties": {
                                                                "type": {
                                                                  "type": "string",
                                                                  "enum": [
                                                                    "string",
                                                                    "number",
                                                                    "boolean",
                                                                    "null"
                                                                  ]
                                                                }
                                                              },
                                                              "required": [
                                                                "type"
                                                              ],
                                                              "additionalProperties": false
                                                            }
                                                          ]
                                                        }
                                                      },
                                                      "required": {
                                                        "type": "array",
                                                        "items": {
                                                          "type": "string"
                                                        }
                                                      },
                                                      "additionalProperties": {
                                                        "type": "boolean"
                                                      }
                                                    },
                                                    "required": [
                                                      "type",
                                                      "properties"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "enum": [
                                                          "string",
                                                          "number",
                                                          "boolean",
                                                          "null"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "type"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "exportFunctions": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "receiveParamOfType": {
                                                "type": "string"
                                              },
                                              "receiveParamsOfTypes": {
                                                "type": "array",
                                                "items": {
                                                  "type": "string"
                                                }
                                              },
                                              "returnValueOfType": {
                                                "type": "string"
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "exportInterfaces": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "extend": {
                                                "anyOf": [
                                                  {
                                                    "type": "string"
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string"
                                                      },
                                                      "allowOmissions": {
                                                        "type": "boolean"
                                                      }
                                                    },
                                                    "required": [
                                                      "type"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "exportClasses": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "extend": {
                                                "anyOf": [
                                                  {
                                                    "type": "string"
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string"
                                                      },
                                                      "allowOmissions": {
                                                        "type": "boolean"
                                                      }
                                                    },
                                                    "required": [
                                                      "type"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              },
                                              "implement": {
                                                "type": "array",
                                                "items": {
                                                  "anyOf": [
                                                    {
                                                      "type": "string"
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "type": {
                                                          "type": "string"
                                                        },
                                                        "allowOmissions": {
                                                          "type": "boolean"
                                                        }
                                                      },
                                                      "required": [
                                                        "type"
                                                      ],
                                                      "additionalProperties": false
                                                    }
                                                  ]
                                                }
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "import": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "from": {
                                                "type": "string"
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "importFrom": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "array",
                                          "items": {
                                            "type": "string"
                                          }
                                        }
                                      ]
                                    },
                                    "importTypes": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "from": {
                                                "type": "string"
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "importFromCurrentDir": {
                                      "type": "boolean"
                                    },
                                    "importFromParents": {
                                      "type": "boolean"
                                    },
                                    "importFromExternals": {
                                      "type": "boolean"
                                    },
                                    "importTypesFromCurrentDir": {
                                      "type": "boolean"
                                    },
                                    "importTypesFromParents": {
                                      "type": "boolean"
                                    },
                                    "importTypesFromExternals": {
                                      "type": "boolean"
                                    },
                                    "useDeclarationOrder": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "areBarrelFiles": {
                                      "type": "boolean"
                                    }
                                  },
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "use"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "mustNot": {
                    "type": "object",
                    "properties": {
                      "haveType": {
                        "type": "string",
                        "enum": [
                          "file",
                          "directory"
                        ]
                      },
                      "haveFiles": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "declareTypes": {
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "schema": {
                                  "anyOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "enum": [
                                            "string",
                                            "number",
                                            "boolean",
                                            "null"
                                          ]
                                        },
                                        "enum": {
                                          "minItems": 1,
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "boolean"
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          }
                                        }
                                      },
                                      "required": [
                                        "type",
                                        "enum"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "const": "array"
                                        },
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string",
                                              "enum": [
                                                "string",
                                                "number",
                                                "boolean",
                                                "null"
                                              ]
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "required": [
                                        "type",
                                        "items"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "const": "object"
                                        },
                                        "properties": {
                                          "type": "object",
                                          "propertyNames": {
                                            "type": "string"
                                          },
                                          "additionalProperties": {
                                            "anyOf": [
                                              {
                                                "type": "object",
                                                "properties": {},
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "type": {
                                                    "type": "string",
                                                    "enum": [
                                                      "string",
                                                      "number",
                                                      "boolean",
                                                      "null"
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "type"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "required": {
                                          "type": "array",
                                          "items": {
                                            "type": "string"
                                          }
                                        },
                                        "additionalProperties": {
                                          "type": "boolean"
                                        }
                                      },
                                      "required": [
                                        "type",
                                        "properties"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "enum": [
                                            "string",
                                            "number",
                                            "boolean",
                                            "null"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "type"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "name"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      },
                      "declareConstants": {
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "schema": {
                                  "anyOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "enum": [
                                            "string",
                                            "number",
                                            "boolean",
                                            "null"
                                          ]
                                        },
                                        "enum": {
                                          "minItems": 1,
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "boolean"
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          }
                                        }
                                      },
                                      "required": [
                                        "type",
                                        "enum"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "const": "array"
                                        },
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string",
                                              "enum": [
                                                "string",
                                                "number",
                                                "boolean",
                                                "null"
                                              ]
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "required": [
                                        "type",
                                        "items"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "const": "object"
                                        },
                                        "properties": {
                                          "type": "object",
                                          "propertyNames": {
                                            "type": "string"
                                          },
                                          "additionalProperties": {
                                            "anyOf": [
                                              {
                                                "type": "object",
                                                "properties": {},
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "type": {
                                                    "type": "string",
                                                    "enum": [
                                                      "string",
                                                      "number",
                                                      "boolean",
                                                      "null"
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "type"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "required": {
                                          "type": "array",
                                          "items": {
                                            "type": "string"
                                          }
                                        },
                                        "additionalProperties": {
                                          "type": "boolean"
                                        }
                                      },
                                      "required": [
                                        "type",
                                        "properties"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "enum": [
                                            "string",
                                            "number",
                                            "boolean",
                                            "null"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "type"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "name"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      },
                      "declareFunctions": {
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "receiveParamOfType": {
                                  "type": "string"
                                },
                                "receiveParamsOfTypes": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                },
                                "returnValueOfType": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "name"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      },
                      "declareInterfaces": {
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "extend": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string"
                                        },
                                        "allowOmissions": {
                                          "type": "boolean"
                                        }
                                      },
                                      "required": [
                                        "type"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "name"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      },
                      "declareClasses": {
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "extend": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string"
                                        },
                                        "allowOmissions": {
                                          "type": "boolean"
                                        }
                                      },
                                      "required": [
                                        "type"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "implement": {
                                  "type": "array",
                                  "items": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "type": {
                                            "type": "string"
                                          },
                                          "allowOmissions": {
                                            "type": "boolean"
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ],
                                        "additionalProperties": false
                                      }
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "name"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      },
                      "export": {
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "from": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "name"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      },
                      "exportTypes": {
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    },
                                    "schema": {
                                      "anyOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string",
                                              "enum": [
                                                "string",
                                                "number",
                                                "boolean",
                                                "null"
                                              ]
                                            },
                                            "enum": {
                                              "minItems": 1,
                                              "type": "array",
                                              "items": {
                                                "anyOf": [
                                                  {
                                                    "type": "string"
                                                  },
                                                  {
                                                    "type": "number"
                                                  },
                                                  {
                                                    "type": "boolean"
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              }
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "enum"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string",
                                              "const": "array"
                                            },
                                            "items": {
                                              "type": "object",
                                              "properties": {
                                                "type": {
                                                  "type": "string",
                                                  "enum": [
                                                    "string",
                                                    "number",
                                                    "boolean",
                                                    "null"
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "type"
                                              ],
                                              "additionalProperties": false
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "items"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string",
                                              "const": "object"
                                            },
                                            "properties": {
                                              "type": "object",
                                              "propertyNames": {
                                                "type": "string"
                                              },
                                              "additionalProperties": {
                                                "anyOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {},
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "enum": [
                                                          "string",
                                                          "number",
                                                          "boolean",
                                                          "null"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "type"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              }
                                            },
                                            "required": {
                                              "type": "array",
                                              "items": {
                                                "type": "string"
                                              }
                                            },
                                            "additionalProperties": {
                                              "type": "boolean"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "properties"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string",
                                              "enum": [
                                                "string",
                                                "number",
                                                "boolean",
                                                "null"
                                              ]
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ],
                                          "additionalProperties": false
                                        }
                                      ]
                                    }
                                  },
                                  "required": [
                                    "name"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    },
                                    "from": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "name",
                                    "from"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          ]
                        }
                      },
                      "exportConstants": {
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "from": {
                                  "type": "string"
                                },
                                "schema": {
                                  "anyOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "enum": [
                                            "string",
                                            "number",
                                            "boolean",
                                            "null"
                                          ]
                                        },
                                        "enum": {
                                          "minItems": 1,
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "boolean"
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          }
                                        }
                                      },
                                      "required": [
                                        "type",
                                        "enum"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "const": "array"
                                        },
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string",
                                              "enum": [
                                                "string",
                                                "number",
                                                "boolean",
                                                "null"
                                              ]
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "required": [
                                        "type",
                                        "items"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "const": "object"
                                        },
                                        "properties": {
                                          "type": "object",
                                          "propertyNames": {
                                            "type": "string"
                                          },
                                          "additionalProperties": {
                                            "anyOf": [
                                              {
                                                "type": "object",
                                                "properties": {},
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "type": {
                                                    "type": "string",
                                                    "enum": [
                                                      "string",
                                                      "number",
                                                      "boolean",
                                                      "null"
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "type"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "required": {
                                          "type": "array",
                                          "items": {
                                            "type": "string"
                                          }
                                        },
                                        "additionalProperties": {
                                          "type": "boolean"
                                        }
                                      },
                                      "required": [
                                        "type",
                                        "properties"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "enum": [
                                            "string",
                                            "number",
                                            "boolean",
                                            "null"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "type"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "name"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      },
                      "exportFunctions": {
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "receiveParamOfType": {
                                  "type": "string"
                                },
                                "receiveParamsOfTypes": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                },
                                "returnValueOfType": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "name"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      },
                      "exportInterfaces": {
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "extend": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string"
                                        },
                                        "allowOmissions": {
                                          "type": "boolean"
                                        }
                                      },
                                      "required": [
                                        "type"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "name"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      },
                      "exportClasses": {
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "extend": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string"
                                        },
                                        "allowOmissions": {
                                          "type": "boolean"
                                        }
                                      },
                                      "required": [
                                        "type"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "implement": {
                                  "type": "array",
                                  "items": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "type": {
                                            "type": "string"
                                          },
                                          "allowOmissions": {
                                            "type": "boolean"
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ],
                                        "additionalProperties": false
                                      }
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "name"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      },
                      "import": {
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "from": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "name"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      },
                      "importFrom": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        ]
                      },
                      "importTypes": {
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "from": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "name"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      },
                      "importFromCurrentDir": {
                        "type": "boolean"
                      },
                      "importFromParents": {
                        "type": "boolean"
                      },
                      "importFromExternals": {
                        "type": "boolean"
                      },
                      "importTypesFromCurrentDir": {
                        "type": "boolean"
                      },
                      "importTypesFromParents": {
                        "type": "boolean"
                      },
                      "importTypesFromExternals": {
                        "type": "boolean"
                      },
                      "useDeclarationOrder": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "areBarrelFiles": {
                        "type": "boolean"
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "paths",
                  "must"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "pattern": "^[a-z0-9-]+$"
                  },
                  "description": {
                    "type": "string"
                  },
                  "severity": {
                    "default": "error",
                    "type": "string",
                    "enum": [
                      "error",
                      "warning"
                    ]
                  },
                  "excludeFiles": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "paths": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    ]
                  },
                  "placeholders": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string",
                      "pattern": "^[a-zA-Z][a-zA-Z0-9]*$"
                    },
                    "additionalProperties": {
                      "type": "string",
                      "pattern": "^[a-zA-Z0-9_-]+$"
                    }
                  },
                  "must": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "haveType": {
                            "type": "string",
                            "enum": [
                              "file",
                              "directory"
                            ]
                          },
                          "haveFiles": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "declareTypes": {
                            "type": "array",
                            "items": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    },
                                    "schema": {
                                      "anyOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string",
                                              "enum": [
                                                "string",
                                                "number",
                                                "boolean",
                                                "null"
                                              ]
                                            },
                                            "enum": {
                                              "minItems": 1,
                                              "type": "array",
                                              "items": {
                                                "anyOf": [
                                                  {
                                                    "type": "string"
                                                  },
                                                  {
                                                    "type": "number"
                                                  },
                                                  {
                                                    "type": "boolean"
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              }
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "enum"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string",
                                              "const": "array"
                                            },
                                            "items": {
                                              "type": "object",
                                              "properties": {
                                                "type": {
                                                  "type": "string",
                                                  "enum": [
                                                    "string",
                                                    "number",
                                                    "boolean",
                                                    "null"
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "type"
                                              ],
                                              "additionalProperties": false
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "items"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string",
                                              "const": "object"
                                            },
                                            "properties": {
                                              "type": "object",
                                              "propertyNames": {
                                                "type": "string"
                                              },
                                              "additionalProperties": {
                                                "anyOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {},
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "enum": [
                                                          "string",
                                                          "number",
                                                          "boolean",
                                                          "null"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "type"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              }
                                            },
                                            "required": {
                                              "type": "array",
                                              "items": {
                                                "type": "string"
                                              }
                                            },
                                            "additionalProperties": {
                                              "type": "boolean"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "properties"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string",
                                              "enum": [
                                                "string",
                                                "number",
                                                "boolean",
                                                "null"
                                              ]
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ],
                                          "additionalProperties": false
                                        }
                                      ]
                                    }
                                  },
                                  "required": [
                                    "name"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "declareConstants": {
                            "type": "array",
                            "items": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    },
                                    "schema": {
                                      "anyOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string",
                                              "enum": [
                                                "string",
                                                "number",
                                                "boolean",
                                                "null"
                                              ]
                                            },
                                            "enum": {
                                              "minItems": 1,
                                              "type": "array",
                                              "items": {
                                                "anyOf": [
                                                  {
                                                    "type": "string"
                                                  },
                                                  {
                                                    "type": "number"
                                                  },
                                                  {
                                                    "type": "boolean"
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              }
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "enum"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string",
                                              "const": "array"
                                            },
                                            "items": {
                                              "type": "object",
                                              "properties": {
                                                "type": {
                                                  "type": "string",
                                                  "enum": [
                                                    "string",
                                                    "number",
                                                    "boolean",
                                                    "null"
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "type"
                                              ],
                                              "additionalProperties": false
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "items"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string",
                                              "const": "object"
                                            },
                                            "properties": {
                                              "type": "object",
                                              "propertyNames": {
                                                "type": "string"
                                              },
                                              "additionalProperties": {
                                                "anyOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {},
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "enum": [
                                                          "string",
                                                          "number",
                                                          "boolean",
                                                          "null"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "type"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              }
                                            },
                                            "required": {
                                              "type": "array",
                                              "items": {
                                                "type": "string"
                                              }
                                            },
                                            "additionalProperties": {
                                              "type": "boolean"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "properties"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string",
                                              "enum": [
                                                "string",
                                                "number",
                                                "boolean",
                                                "null"
                                              ]
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ],
                                          "additionalProperties": false
                                        }
                                      ]
                                    }
                                  },
                                  "required": [
                                    "name"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "declareFunctions": {
                            "type": "array",
                            "items": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    },
                                    "receiveParamOfType": {
                                      "type": "string"
                                    },
                                    "receiveParamsOfTypes": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "returnValueOfType": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "name"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "declareInterfaces": {
                            "type": "array",
                            "items": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    },
                                    "extend": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string"
                                            },
                                            "allowOmissions": {
                                              "type": "boolean"
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ],
                                          "additionalProperties": false
                                        }
                                      ]
                                    }
                                  },
                                  "required": [
                                    "name"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "declareClasses": {
                            "type": "array",
                            "items": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    },
                                    "extend": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string"
                                            },
                                            "allowOmissions": {
                                              "type": "boolean"
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ],
                                          "additionalProperties": false
                                        }
                                      ]
                                    },
                                    "implement": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "type": {
                                                "type": "string"
                                              },
                                              "allowOmissions": {
                                                "type": "boolean"
                                              }
                                            },
                                            "required": [
                                              "type"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    }
                                  },
                                  "required": [
                                    "name"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "export": {
                            "type": "array",
                            "items": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    },
                                    "from": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "name"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "exportTypes": {
                            "type": "array",
                            "items": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "anyOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "name": {
                                          "type": "string"
                                        },
                                        "schema": {
                                          "anyOf": [
                                            {
                                              "type": "object",
                                              "properties": {
                                                "type": {
                                                  "type": "string",
                                                  "enum": [
                                                    "string",
                                                    "number",
                                                    "boolean",
                                                    "null"
                                                  ]
                                                },
                                                "enum": {
                                                  "minItems": 1,
                                                  "type": "array",
                                                  "items": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string"
                                                      },
                                                      {
                                                        "type": "number"
                                                      },
                                                      {
                                                        "type": "boolean"
                                                      },
                                                      {
                                                        "type": "null"
                                                      }
                                                    ]
                                                  }
                                                }
                                              },
                                              "required": [
                                                "type",
                                                "enum"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "type": {
                                                  "type": "string",
                                                  "const": "array"
                                                },
                                                "items": {
                                                  "type": "object",
                                                  "properties": {
                                                    "type": {
                                                      "type": "string",
                                                      "enum": [
                                                        "string",
                                                        "number",
                                                        "boolean",
                                                        "null"
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "type"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              },
                                              "required": [
                                                "type",
                                                "items"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "type": {
                                                  "type": "string",
                                                  "const": "object"
                                                },
                                                "properties": {
                                                  "type": "object",
                                                  "propertyNames": {
                                                    "type": "string"
                                                  },
                                                  "additionalProperties": {
                                                    "anyOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {},
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": {
                                                  "type": "array",
                                                  "items": {
                                                    "type": "string"
                                                  }
                                                },
                                                "additionalProperties": {
                                                  "type": "boolean"
                                                }
                                              },
                                              "required": [
                                                "type",
                                                "properties"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "type": {
                                                  "type": "string",
                                                  "enum": [
                                                    "string",
                                                    "number",
                                                    "boolean",
                                                    "null"
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "type"
                                              ],
                                              "additionalProperties": false
                                            }
                                          ]
                                        }
                                      },
                                      "required": [
                                        "name"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "name": {
                                          "type": "string"
                                        },
                                        "from": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "name",
                                        "from"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                }
                              ]
                            }
                          },
                          "exportConstants": {
                            "type": "array",
                            "items": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    },
                                    "from": {
                                      "type": "string"
                                    },
                                    "schema": {
                                      "anyOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string",
                                              "enum": [
                                                "string",
                                                "number",
                                                "boolean",
                                                "null"
                                              ]
                                            },
                                            "enum": {
                                              "minItems": 1,
                                              "type": "array",
                                              "items": {
                                                "anyOf": [
                                                  {
                                                    "type": "string"
                                                  },
                                                  {
                                                    "type": "number"
                                                  },
                                                  {
                                                    "type": "boolean"
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              }
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "enum"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string",
                                              "const": "array"
                                            },
                                            "items": {
                                              "type": "object",
                                              "properties": {
                                                "type": {
                                                  "type": "string",
                                                  "enum": [
                                                    "string",
                                                    "number",
                                                    "boolean",
                                                    "null"
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "type"
                                              ],
                                              "additionalProperties": false
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "items"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string",
                                              "const": "object"
                                            },
                                            "properties": {
                                              "type": "object",
                                              "propertyNames": {
                                                "type": "string"
                                              },
                                              "additionalProperties": {
                                                "anyOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {},
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "enum": [
                                                          "string",
                                                          "number",
                                                          "boolean",
                                                          "null"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "type"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              }
                                            },
                                            "required": {
                                              "type": "array",
                                              "items": {
                                                "type": "string"
                                              }
                                            },
                                            "additionalProperties": {
                                              "type": "boolean"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "properties"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string",
                                              "enum": [
                                                "string",
                                                "number",
                                                "boolean",
                                                "null"
                                              ]
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ],
                                          "additionalProperties": false
                                        }
                                      ]
                                    }
                                  },
                                  "required": [
                                    "name"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "exportFunctions": {
                            "type": "array",
                            "items": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    },
                                    "receiveParamOfType": {
                                      "type": "string"
                                    },
                                    "receiveParamsOfTypes": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "returnValueOfType": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "name"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "exportInterfaces": {
                            "type": "array",
                            "items": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    },
                                    "extend": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string"
                                            },
                                            "allowOmissions": {
                                              "type": "boolean"
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ],
                                          "additionalProperties": false
                                        }
                                      ]
                                    }
                                  },
                                  "required": [
                                    "name"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "exportClasses": {
                            "type": "array",
                            "items": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    },
                                    "extend": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string"
                                            },
                                            "allowOmissions": {
                                              "type": "boolean"
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ],
                                          "additionalProperties": false
                                        }
                                      ]
                                    },
                                    "implement": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "type": {
                                                "type": "string"
                                              },
                                              "allowOmissions": {
                                                "type": "boolean"
                                              }
                                            },
                                            "required": [
                                              "type"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    }
                                  },
                                  "required": [
                                    "name"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "import": {
                            "type": "array",
                            "items": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    },
                                    "from": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "name"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "importFrom": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            ]
                          },
                          "importTypes": {
                            "type": "array",
                            "items": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    },
                                    "from": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "name"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "importFromCurrentDir": {
                            "type": "boolean"
                          },
                          "importFromParents": {
                            "type": "boolean"
                          },
                          "importFromExternals": {
                            "type": "boolean"
                          },
                          "importTypesFromCurrentDir": {
                            "type": "boolean"
                          },
                          "importTypesFromParents": {
                            "type": "boolean"
                          },
                          "importTypesFromExternals": {
                            "type": "boolean"
                          },
                          "useDeclarationOrder": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "areBarrelFiles": {
                            "type": "boolean"
                          }
                        },
                        "additionalProperties": false
                      },
                      {
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "type": "string",
                              "pattern": "^[a-z0-9-]+\\/[a-z0-9-]+$"
                            },
                            {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string",
                                      "pattern": "^[a-z0-9-]+$"
                                    },
                                    "description": {
                                      "type": "string"
                                    },
                                    "if": {
                                      "anyOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "hasFile": {
                                              "type": "string"
                                            }
                                          },
                                          "required": [
                                            "hasFile"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "placeholderSatisfies": {
                                              "type": "string"
                                            }
                                          },
                                          "required": [
                                            "placeholderSatisfies"
                                          ],
                                          "additionalProperties": false
                                        }
                                      ]
                                    },
                                    "for": {
                                      "type": "object",
                                      "properties": {
                                        "files": {
                                          "anyOf": [
                                            {
                                              "type": "string"
                                            },
                                            {
                                              "type": "array",
                                              "items": {
                                                "type": "string"
                                              }
                                            }
                                          ]
                                        }
                                      },
                                      "required": [
                                        "files"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "excludeFiles": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "must": {
                                      "type": "object",
                                      "properties": {
                                        "haveType": {
                                          "type": "string",
                                          "enum": [
                                            "file",
                                            "directory"
                                          ]
                                        },
                                        "haveFiles": {
                                          "type": "array",
                                          "items": {
                                            "type": "string"
                                          }
                                        },
                                        "declareTypes": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "schema": {
                                                    "anyOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          },
                                                          "enum": {
                                                            "minItems": 1,
                                                            "type": "array",
                                                            "items": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "string"
                                                                },
                                                                {
                                                                  "type": "number"
                                                                },
                                                                {
                                                                  "type": "boolean"
                                                                },
                                                                {
                                                                  "type": "null"
                                                                }
                                                              ]
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "enum"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "array"
                                                          },
                                                          "items": {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              }
                                                            },
                                                            "required": [
                                                              "type"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "items"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "object"
                                                          },
                                                          "properties": {
                                                            "type": "object",
                                                            "propertyNames": {
                                                              "type": "string"
                                                            },
                                                            "additionalProperties": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "object",
                                                                  "properties": {},
                                                                  "additionalProperties": false
                                                                },
                                                                {
                                                                  "type": "object",
                                                                  "properties": {
                                                                    "type": {
                                                                      "type": "string",
                                                                      "enum": [
                                                                        "string",
                                                                        "number",
                                                                        "boolean",
                                                                        "null"
                                                                      ]
                                                                    }
                                                                  },
                                                                  "required": [
                                                                    "type"
                                                                  ],
                                                                  "additionalProperties": false
                                                                }
                                                              ]
                                                            }
                                                          },
                                                          "required": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "string"
                                                            }
                                                          },
                                                          "additionalProperties": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "properties"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "declareConstants": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "schema": {
                                                    "anyOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          },
                                                          "enum": {
                                                            "minItems": 1,
                                                            "type": "array",
                                                            "items": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "string"
                                                                },
                                                                {
                                                                  "type": "number"
                                                                },
                                                                {
                                                                  "type": "boolean"
                                                                },
                                                                {
                                                                  "type": "null"
                                                                }
                                                              ]
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "enum"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "array"
                                                          },
                                                          "items": {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              }
                                                            },
                                                            "required": [
                                                              "type"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "items"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "object"
                                                          },
                                                          "properties": {
                                                            "type": "object",
                                                            "propertyNames": {
                                                              "type": "string"
                                                            },
                                                            "additionalProperties": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "object",
                                                                  "properties": {},
                                                                  "additionalProperties": false
                                                                },
                                                                {
                                                                  "type": "object",
                                                                  "properties": {
                                                                    "type": {
                                                                      "type": "string",
                                                                      "enum": [
                                                                        "string",
                                                                        "number",
                                                                        "boolean",
                                                                        "null"
                                                                      ]
                                                                    }
                                                                  },
                                                                  "required": [
                                                                    "type"
                                                                  ],
                                                                  "additionalProperties": false
                                                                }
                                                              ]
                                                            }
                                                          },
                                                          "required": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "string"
                                                            }
                                                          },
                                                          "additionalProperties": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "properties"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "declareFunctions": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "receiveParamOfType": {
                                                    "type": "string"
                                                  },
                                                  "receiveParamsOfTypes": {
                                                    "type": "array",
                                                    "items": {
                                                      "type": "string"
                                                    }
                                                  },
                                                  "returnValueOfType": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "declareInterfaces": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "extend": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string"
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string"
                                                          },
                                                          "allowOmissions": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "declareClasses": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "extend": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string"
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string"
                                                          },
                                                          "allowOmissions": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  },
                                                  "implement": {
                                                    "type": "array",
                                                    "items": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string"
                                                        },
                                                        {
                                                          "type": "object",
                                                          "properties": {
                                                            "type": {
                                                              "type": "string"
                                                            },
                                                            "allowOmissions": {
                                                              "type": "boolean"
                                                            }
                                                          },
                                                          "required": [
                                                            "type"
                                                          ],
                                                          "additionalProperties": false
                                                        }
                                                      ]
                                                    }
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "export": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "from": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "exportTypes": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "anyOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "name": {
                                                        "type": "string"
                                                      },
                                                      "schema": {
                                                        "anyOf": [
                                                          {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              },
                                                              "enum": {
                                                                "minItems": 1,
                                                                "type": "array",
                                                                "items": {
                                                                  "anyOf": [
                                                                    {
                                                                      "type": "string"
                                                                    },
                                                                    {
                                                                      "type": "number"
                                                                    },
                                                                    {
                                                                      "type": "boolean"
                                                                    },
                                                                    {
                                                                      "type": "null"
                                                                    }
                                                                  ]
                                                                }
                                                              }
                                                            },
                                                            "required": [
                                                              "type",
                                                              "enum"
                                                            ],
                                                            "additionalProperties": false
                                                          },
                                                          {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "const": "array"
                                                              },
                                                              "items": {
                                                                "type": "object",
                                                                "properties": {
                                                                  "type": {
                                                                    "type": "string",
                                                                    "enum": [
                                                                      "string",
                                                                      "number",
                                                                      "boolean",
                                                                      "null"
                                                                    ]
                                                                  }
                                                                },
                                                                "required": [
                                                                  "type"
                                                                ],
                                                                "additionalProperties": false
                                                              }
                                                            },
                                                            "required": [
                                                              "type",
                                                              "items"
                                                            ],
                                                            "additionalProperties": false
                                                          },
                                                          {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "const": "object"
                                                              },
                                                              "properties": {
                                                                "type": "object",
                                                                "propertyNames": {
                                                                  "type": "string"
                                                                },
                                                                "additionalProperties": {
                                                                  "anyOf": [
                                                                    {
                                                                      "type": "object",
                                                                      "properties": {},
                                                                      "additionalProperties": false
                                                                    },
                                                                    {
                                                                      "type": "object",
                                                                      "properties": {
                                                                        "type": {
                                                                          "type": "string",
                                                                          "enum": [
                                                                            "string",
                                                                            "number",
                                                                            "boolean",
                                                                            "null"
                                                                          ]
                                                                        }
                                                                      },
                                                                      "required": [
                                                                        "type"
                                                                      ],
                                                                      "additionalProperties": false
                                                                    }
                                                                  ]
                                                                }
                                                              },
                                                              "required": {
                                                                "type": "array",
                                                                "items": {
                                                                  "type": "string"
                                                                }
                                                              },
                                                              "additionalProperties": {
                                                                "type": "boolean"
                                                              }
                                                            },
                                                            "required": [
                                                              "type",
                                                              "properties"
                                                            ],
                                                            "additionalProperties": false
                                                          },
                                                          {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              }
                                                            },
                                                            "required": [
                                                              "type"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "name"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "name": {
                                                        "type": "string"
                                                      },
                                                      "from": {
                                                        "type": "string"
                                                      }
                                                    },
                                                    "required": [
                                                      "name",
                                                      "from"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              }
                                            ]
                                          }
                                        },
                                        "exportConstants": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "from": {
                                                    "type": "string"
                                                  },
                                                  "schema": {
                                                    "anyOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          },
                                                          "enum": {
                                                            "minItems": 1,
                                                            "type": "array",
                                                            "items": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "string"
                                                                },
                                                                {
                                                                  "type": "number"
                                                                },
                                                                {
                                                                  "type": "boolean"
                                                                },
                                                                {
                                                                  "type": "null"
                                                                }
                                                              ]
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "enum"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "array"
                                                          },
                                                          "items": {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              }
                                                            },
                                                            "required": [
                                                              "type"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "items"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "object"
                                                          },
                                                          "properties": {
                                                            "type": "object",
                                                            "propertyNames": {
                                                              "type": "string"
                                                            },
                                                            "additionalProperties": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "object",
                                                                  "properties": {},
                                                                  "additionalProperties": false
                                                                },
                                                                {
                                                                  "type": "object",
                                                                  "properties": {
                                                                    "type": {
                                                                      "type": "string",
                                                                      "enum": [
                                                                        "string",
                                                                        "number",
                                                                        "boolean",
                                                                        "null"
                                                                      ]
                                                                    }
                                                                  },
                                                                  "required": [
                                                                    "type"
                                                                  ],
                                                                  "additionalProperties": false
                                                                }
                                                              ]
                                                            }
                                                          },
                                                          "required": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "string"
                                                            }
                                                          },
                                                          "additionalProperties": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "properties"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "exportFunctions": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "receiveParamOfType": {
                                                    "type": "string"
                                                  },
                                                  "receiveParamsOfTypes": {
                                                    "type": "array",
                                                    "items": {
                                                      "type": "string"
                                                    }
                                                  },
                                                  "returnValueOfType": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "exportInterfaces": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "extend": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string"
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string"
                                                          },
                                                          "allowOmissions": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "exportClasses": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "extend": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string"
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string"
                                                          },
                                                          "allowOmissions": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  },
                                                  "implement": {
                                                    "type": "array",
                                                    "items": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string"
                                                        },
                                                        {
                                                          "type": "object",
                                                          "properties": {
                                                            "type": {
                                                              "type": "string"
                                                            },
                                                            "allowOmissions": {
                                                              "type": "boolean"
                                                            }
                                                          },
                                                          "required": [
                                                            "type"
                                                          ],
                                                          "additionalProperties": false
                                                        }
                                                      ]
                                                    }
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "import": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "from": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "importFrom": {
                                          "anyOf": [
                                            {
                                              "type": "string"
                                            },
                                            {
                                              "type": "array",
                                              "items": {
                                                "type": "string"
                                              }
                                            }
                                          ]
                                        },
                                        "importTypes": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "from": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "importFromCurrentDir": {
                                          "type": "boolean"
                                        },
                                        "importFromParents": {
                                          "type": "boolean"
                                        },
                                        "importFromExternals": {
                                          "type": "boolean"
                                        },
                                        "importTypesFromCurrentDir": {
                                          "type": "boolean"
                                        },
                                        "importTypesFromParents": {
                                          "type": "boolean"
                                        },
                                        "importTypesFromExternals": {
                                          "type": "boolean"
                                        },
                                        "useDeclarationOrder": {
                                          "type": "array",
                                          "items": {
                                            "type": "string"
                                          }
                                        },
                                        "areBarrelFiles": {
                                          "type": "boolean"
                                        }
                                      },
                                      "additionalProperties": false
                                    },
                                    "mustNot": {
                                      "type": "object",
                                      "properties": {
                                        "haveType": {
                                          "type": "string",
                                          "enum": [
                                            "file",
                                            "directory"
                                          ]
                                        },
                                        "haveFiles": {
                                          "type": "array",
                                          "items": {
                                            "type": "string"
                                          }
                                        },
                                        "declareTypes": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "schema": {
                                                    "anyOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          },
                                                          "enum": {
                                                            "minItems": 1,
                                                            "type": "array",
                                                            "items": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "string"
                                                                },
                                                                {
                                                                  "type": "number"
                                                                },
                                                                {
                                                                  "type": "boolean"
                                                                },
                                                                {
                                                                  "type": "null"
                                                                }
                                                              ]
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "enum"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "array"
                                                          },
                                                          "items": {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              }
                                                            },
                                                            "required": [
                                                              "type"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "items"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "object"
                                                          },
                                                          "properties": {
                                                            "type": "object",
                                                            "propertyNames": {
                                                              "type": "string"
                                                            },
                                                            "additionalProperties": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "object",
                                                                  "properties": {},
                                                                  "additionalProperties": false
                                                                },
                                                                {
                                                                  "type": "object",
                                                                  "properties": {
                                                                    "type": {
                                                                      "type": "string",
                                                                      "enum": [
                                                                        "string",
                                                                        "number",
                                                                        "boolean",
                                                                        "null"
                                                                      ]
                                                                    }
                                                                  },
                                                                  "required": [
                                                                    "type"
                                                                  ],
                                                                  "additionalProperties": false
                                                                }
                                                              ]
                                                            }
                                                          },
                                                          "required": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "string"
                                                            }
                                                          },
                                                          "additionalProperties": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "properties"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "declareConstants": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "schema": {
                                                    "anyOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          },
                                                          "enum": {
                                                            "minItems": 1,
                                                            "type": "array",
                                                            "items": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "string"
                                                                },
                                                                {
                                                                  "type": "number"
                                                                },
                                                                {
                                                                  "type": "boolean"
                                                                },
                                                                {
                                                                  "type": "null"
                                                                }
                                                              ]
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "enum"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "array"
                                                          },
                                                          "items": {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              }
                                                            },
                                                            "required": [
                                                              "type"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "items"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "object"
                                                          },
                                                          "properties": {
                                                            "type": "object",
                                                            "propertyNames": {
                                                              "type": "string"
                                                            },
                                                            "additionalProperties": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "object",
                                                                  "properties": {},
                                                                  "additionalProperties": false
                                                                },
                                                                {
                                                                  "type": "object",
                                                                  "properties": {
                                                                    "type": {
                                                                      "type": "string",
                                                                      "enum": [
                                                                        "string",
                                                                        "number",
                                                                        "boolean",
                                                                        "null"
                                                                      ]
                                                                    }
                                                                  },
                                                                  "required": [
                                                                    "type"
                                                                  ],
                                                                  "additionalProperties": false
                                                                }
                                                              ]
                                                            }
                                                          },
                                                          "required": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "string"
                                                            }
                                                          },
                                                          "additionalProperties": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "properties"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "declareFunctions": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "receiveParamOfType": {
                                                    "type": "string"
                                                  },
                                                  "receiveParamsOfTypes": {
                                                    "type": "array",
                                                    "items": {
                                                      "type": "string"
                                                    }
                                                  },
                                                  "returnValueOfType": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "declareInterfaces": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "extend": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string"
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string"
                                                          },
                                                          "allowOmissions": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "declareClasses": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "extend": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string"
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string"
                                                          },
                                                          "allowOmissions": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  },
                                                  "implement": {
                                                    "type": "array",
                                                    "items": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string"
                                                        },
                                                        {
                                                          "type": "object",
                                                          "properties": {
                                                            "type": {
                                                              "type": "string"
                                                            },
                                                            "allowOmissions": {
                                                              "type": "boolean"
                                                            }
                                                          },
                                                          "required": [
                                                            "type"
                                                          ],
                                                          "additionalProperties": false
                                                        }
                                                      ]
                                                    }
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "export": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "from": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "exportTypes": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "anyOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "name": {
                                                        "type": "string"
                                                      },
                                                      "schema": {
                                                        "anyOf": [
                                                          {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              },
                                                              "enum": {
                                                                "minItems": 1,
                                                                "type": "array",
                                                                "items": {
                                                                  "anyOf": [
                                                                    {
                                                                      "type": "string"
                                                                    },
                                                                    {
                                                                      "type": "number"
                                                                    },
                                                                    {
                                                                      "type": "boolean"
                                                                    },
                                                                    {
                                                                      "type": "null"
                                                                    }
                                                                  ]
                                                                }
                                                              }
                                                            },
                                                            "required": [
                                                              "type",
                                                              "enum"
                                                            ],
                                                            "additionalProperties": false
                                                          },
                                                          {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "const": "array"
                                                              },
                                                              "items": {
                                                                "type": "object",
                                                                "properties": {
                                                                  "type": {
                                                                    "type": "string",
                                                                    "enum": [
                                                                      "string",
                                                                      "number",
                                                                      "boolean",
                                                                      "null"
                                                                    ]
                                                                  }
                                                                },
                                                                "required": [
                                                                  "type"
                                                                ],
                                                                "additionalProperties": false
                                                              }
                                                            },
                                                            "required": [
                                                              "type",
                                                              "items"
                                                            ],
                                                            "additionalProperties": false
                                                          },
                                                          {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "const": "object"
                                                              },
                                                              "properties": {
                                                                "type": "object",
                                                                "propertyNames": {
                                                                  "type": "string"
                                                                },
                                                                "additionalProperties": {
                                                                  "anyOf": [
                                                                    {
                                                                      "type": "object",
                                                                      "properties": {},
                                                                      "additionalProperties": false
                                                                    },
                                                                    {
                                                                      "type": "object",
                                                                      "properties": {
                                                                        "type": {
                                                                          "type": "string",
                                                                          "enum": [
                                                                            "string",
                                                                            "number",
                                                                            "boolean",
                                                                            "null"
                                                                          ]
                                                                        }
                                                                      },
                                                                      "required": [
                                                                        "type"
                                                                      ],
                                                                      "additionalProperties": false
                                                                    }
                                                                  ]
                                                                }
                                                              },
                                                              "required": {
                                                                "type": "array",
                                                                "items": {
                                                                  "type": "string"
                                                                }
                                                              },
                                                              "additionalProperties": {
                                                                "type": "boolean"
                                                              }
                                                            },
                                                            "required": [
                                                              "type",
                                                              "properties"
                                                            ],
                                                            "additionalProperties": false
                                                          },
                                                          {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              }
                                                            },
                                                            "required": [
                                                              "type"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "name"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "name": {
                                                        "type": "string"
                                                      },
                                                      "from": {
                                                        "type": "string"
                                                      }
                                                    },
                                                    "required": [
                                                      "name",
                                                      "from"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              }
                                            ]
                                          }
                                        },
                                        "exportConstants": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "from": {
                                                    "type": "string"
                                                  },
                                                  "schema": {
                                                    "anyOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          },
                                                          "enum": {
                                                            "minItems": 1,
                                                            "type": "array",
                                                            "items": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "string"
                                                                },
                                                                {
                                                                  "type": "number"
                                                                },
                                                                {
                                                                  "type": "boolean"
                                                                },
                                                                {
                                                                  "type": "null"
                                                                }
                                                              ]
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "enum"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "array"
                                                          },
                                                          "items": {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              }
                                                            },
                                                            "required": [
                                                              "type"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "items"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "object"
                                                          },
                                                          "properties": {
                                                            "type": "object",
                                                            "propertyNames": {
                                                              "type": "string"
                                                            },
                                                            "additionalProperties": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "object",
                                                                  "properties": {},
                                                                  "additionalProperties": false
                                                                },
                                                                {
                                                                  "type": "object",
                                                                  "properties": {
                                                                    "type": {
                                                                      "type": "string",
                                                                      "enum": [
                                                                        "string",
                                                                        "number",
                                                                        "boolean",
                                                                        "null"
                                                                      ]
                                                                    }
                                                                  },
                                                                  "required": [
                                                                    "type"
                                                                  ],
                                                                  "additionalProperties": false
                                                                }
                                                              ]
                                                            }
                                                          },
                                                          "required": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "string"
                                                            }
                                                          },
                                                          "additionalProperties": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "properties"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "exportFunctions": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "receiveParamOfType": {
                                                    "type": "string"
                                                  },
                                                  "receiveParamsOfTypes": {
                                                    "type": "array",
                                                    "items": {
                                                      "type": "string"
                                                    }
                                                  },
                                                  "returnValueOfType": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "exportInterfaces": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "extend": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string"
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string"
                                                          },
                                                          "allowOmissions": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "exportClasses": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "extend": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string"
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string"
                                                          },
                                                          "allowOmissions": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  },
                                                  "implement": {
                                                    "type": "array",
                                                    "items": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string"
                                                        },
                                                        {
                                                          "type": "object",
                                                          "properties": {
                                                            "type": {
                                                              "type": "string"
                                                            },
                                                            "allowOmissions": {
                                                              "type": "boolean"
                                                            }
                                                          },
                                                          "required": [
                                                            "type"
                                                          ],
                                                          "additionalProperties": false
                                                        }
                                                      ]
                                                    }
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "import": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "from": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "importFrom": {
                                          "anyOf": [
                                            {
                                              "type": "string"
                                            },
                                            {
                                              "type": "array",
                                              "items": {
                                                "type": "string"
                                              }
                                            }
                                          ]
                                        },
                                        "importTypes": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "from": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "importFromCurrentDir": {
                                          "type": "boolean"
                                        },
                                        "importFromParents": {
                                          "type": "boolean"
                                        },
                                        "importFromExternals": {
                                          "type": "boolean"
                                        },
                                        "importTypesFromCurrentDir": {
                                          "type": "boolean"
                                        },
                                        "importTypesFromParents": {
                                          "type": "boolean"
                                        },
                                        "importTypesFromExternals": {
                                          "type": "boolean"
                                        },
                                        "useDeclarationOrder": {
                                          "type": "array",
                                          "items": {
                                            "type": "string"
                                          }
                                        },
                                        "areBarrelFiles": {
                                          "type": "boolean"
                                        }
                                      },
                                      "additionalProperties": false
                                    }
                                  },
                                  "required": [
                                    "must"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string",
                                      "pattern": "^[a-z0-9-]+$"
                                    },
                                    "description": {
                                      "type": "string"
                                    },
                                    "if": {
                                      "anyOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "hasFile": {
                                              "type": "string"
                                            }
                                          },
                                          "required": [
                                            "hasFile"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "placeholderSatisfies": {
                                              "type": "string"
                                            }
                                          },
                                          "required": [
                                            "placeholderSatisfies"
                                          ],
                                          "additionalProperties": false
                                        }
                                      ]
                                    },
                                    "for": {
                                      "type": "object",
                                      "properties": {
                                        "files": {
                                          "anyOf": [
                                            {
                                              "type": "string"
                                            },
                                            {
                                              "type": "array",
                                              "items": {
                                                "type": "string"
                                              }
                                            }
                                          ]
                                        }
                                      },
                                      "required": [
                                        "files"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "excludeFiles": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "must": {
                                      "type": "object",
                                      "properties": {
                                        "haveType": {
                                          "type": "string",
                                          "enum": [
                                            "file",
                                            "directory"
                                          ]
                                        },
                                        "haveFiles": {
                                          "type": "array",
                                          "items": {
                                            "type": "string"
                                          }
                                        },
                                        "declareTypes": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "schema": {
                                                    "anyOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          },
                                                          "enum": {
                                                            "minItems": 1,
                                                            "type": "array",
                                                            "items": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "string"
                                                                },
                                                                {
                                                                  "type": "number"
                                                                },
                                                                {
                                                                  "type": "boolean"
                                                                },
                                                                {
                                                                  "type": "null"
                                                                }
                                                              ]
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "enum"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "array"
                                                          },
                                                          "items": {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              }
                                                            },
                                                            "required": [
                                                              "type"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "items"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "object"
                                                          },
                                                          "properties": {
                                                            "type": "object",
                                                            "propertyNames": {
                                                              "type": "string"
                                                            },
                                                            "additionalProperties": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "object",
                                                                  "properties": {},
                                                                  "additionalProperties": false
                                                                },
                                                                {
                                                                  "type": "object",
                                                                  "properties": {
                                                                    "type": {
                                                                      "type": "string",
                                                                      "enum": [
                                                                        "string",
                                                                        "number",
                                                                        "boolean",
                                                                        "null"
                                                                      ]
                                                                    }
                                                                  },
                                                                  "required": [
                                                                    "type"
                                                                  ],
                                                                  "additionalProperties": false
                                                                }
                                                              ]
                                                            }
                                                          },
                                                          "required": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "string"
                                                            }
                                                          },
                                                          "additionalProperties": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "properties"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "declareConstants": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "schema": {
                                                    "anyOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          },
                                                          "enum": {
                                                            "minItems": 1,
                                                            "type": "array",
                                                            "items": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "string"
                                                                },
                                                                {
                                                                  "type": "number"
                                                                },
                                                                {
                                                                  "type": "boolean"
                                                                },
                                                                {
                                                                  "type": "null"
                                                                }
                                                              ]
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "enum"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "array"
                                                          },
                                                          "items": {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              }
                                                            },
                                                            "required": [
                                                              "type"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "items"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "object"
                                                          },
                                                          "properties": {
                                                            "type": "object",
                                                            "propertyNames": {
                                                              "type": "string"
                                                            },
                                                            "additionalProperties": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "object",
                                                                  "properties": {},
                                                                  "additionalProperties": false
                                                                },
                                                                {
                                                                  "type": "object",
                                                                  "properties": {
                                                                    "type": {
                                                                      "type": "string",
                                                                      "enum": [
                                                                        "string",
                                                                        "number",
                                                                        "boolean",
                                                                        "null"
                                                                      ]
                                                                    }
                                                                  },
                                                                  "required": [
                                                                    "type"
                                                                  ],
                                                                  "additionalProperties": false
                                                                }
                                                              ]
                                                            }
                                                          },
                                                          "required": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "string"
                                                            }
                                                          },
                                                          "additionalProperties": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "properties"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "declareFunctions": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "receiveParamOfType": {
                                                    "type": "string"
                                                  },
                                                  "receiveParamsOfTypes": {
                                                    "type": "array",
                                                    "items": {
                                                      "type": "string"
                                                    }
                                                  },
                                                  "returnValueOfType": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "declareInterfaces": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "extend": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string"
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string"
                                                          },
                                                          "allowOmissions": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "declareClasses": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "extend": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string"
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string"
                                                          },
                                                          "allowOmissions": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  },
                                                  "implement": {
                                                    "type": "array",
                                                    "items": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string"
                                                        },
                                                        {
                                                          "type": "object",
                                                          "properties": {
                                                            "type": {
                                                              "type": "string"
                                                            },
                                                            "allowOmissions": {
                                                              "type": "boolean"
                                                            }
                                                          },
                                                          "required": [
                                                            "type"
                                                          ],
                                                          "additionalProperties": false
                                                        }
                                                      ]
                                                    }
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "export": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "from": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "exportTypes": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "anyOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "name": {
                                                        "type": "string"
                                                      },
                                                      "schema": {
                                                        "anyOf": [
                                                          {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              },
                                                              "enum": {
                                                                "minItems": 1,
                                                                "type": "array",
                                                                "items": {
                                                                  "anyOf": [
                                                                    {
                                                                      "type": "string"
                                                                    },
                                                                    {
                                                                      "type": "number"
                                                                    },
                                                                    {
                                                                      "type": "boolean"
                                                                    },
                                                                    {
                                                                      "type": "null"
                                                                    }
                                                                  ]
                                                                }
                                                              }
                                                            },
                                                            "required": [
                                                              "type",
                                                              "enum"
                                                            ],
                                                            "additionalProperties": false
                                                          },
                                                          {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "const": "array"
                                                              },
                                                              "items": {
                                                                "type": "object",
                                                                "properties": {
                                                                  "type": {
                                                                    "type": "string",
                                                                    "enum": [
                                                                      "string",
                                                                      "number",
                                                                      "boolean",
                                                                      "null"
                                                                    ]
                                                                  }
                                                                },
                                                                "required": [
                                                                  "type"
                                                                ],
                                                                "additionalProperties": false
                                                              }
                                                            },
                                                            "required": [
                                                              "type",
                                                              "items"
                                                            ],
                                                            "additionalProperties": false
                                                          },
                                                          {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "const": "object"
                                                              },
                                                              "properties": {
                                                                "type": "object",
                                                                "propertyNames": {
                                                                  "type": "string"
                                                                },
                                                                "additionalProperties": {
                                                                  "anyOf": [
                                                                    {
                                                                      "type": "object",
                                                                      "properties": {},
                                                                      "additionalProperties": false
                                                                    },
                                                                    {
                                                                      "type": "object",
                                                                      "properties": {
                                                                        "type": {
                                                                          "type": "string",
                                                                          "enum": [
                                                                            "string",
                                                                            "number",
                                                                            "boolean",
                                                                            "null"
                                                                          ]
                                                                        }
                                                                      },
                                                                      "required": [
                                                                        "type"
                                                                      ],
                                                                      "additionalProperties": false
                                                                    }
                                                                  ]
                                                                }
                                                              },
                                                              "required": {
                                                                "type": "array",
                                                                "items": {
                                                                  "type": "string"
                                                                }
                                                              },
                                                              "additionalProperties": {
                                                                "type": "boolean"
                                                              }
                                                            },
                                                            "required": [
                                                              "type",
                                                              "properties"
                                                            ],
                                                            "additionalProperties": false
                                                          },
                                                          {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              }
                                                            },
                                                            "required": [
                                                              "type"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "name"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "name": {
                                                        "type": "string"
                                                      },
                                                      "from": {
                                                        "type": "string"
                                                      }
                                                    },
                                                    "required": [
                                                      "name",
                                                      "from"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              }
                                            ]
                                          }
                                        },
                                        "exportConstants": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "from": {
                                                    "type": "string"
                                                  },
                                                  "schema": {
                                                    "anyOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          },
                                                          "enum": {
                                                            "minItems": 1,
                                                            "type": "array",
                                                            "items": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "string"
                                                                },
                                                                {
                                                                  "type": "number"
                                                                },
                                                                {
                                                                  "type": "boolean"
                                                                },
                                                                {
                                                                  "type": "null"
                                                                }
                                                              ]
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "enum"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "array"
                                                          },
                                                          "items": {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              }
                                                            },
                                                            "required": [
                                                              "type"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "items"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "object"
                                                          },
                                                          "properties": {
                                                            "type": "object",
                                                            "propertyNames": {
                                                              "type": "string"
                                                            },
                                                            "additionalProperties": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "object",
                                                                  "properties": {},
                                                                  "additionalProperties": false
                                                                },
                                                                {
                                                                  "type": "object",
                                                                  "properties": {
                                                                    "type": {
                                                                      "type": "string",
                                                                      "enum": [
                                                                        "string",
                                                                        "number",
                                                                        "boolean",
                                                                        "null"
                                                                      ]
                                                                    }
                                                                  },
                                                                  "required": [
                                                                    "type"
                                                                  ],
                                                                  "additionalProperties": false
                                                                }
                                                              ]
                                                            }
                                                          },
                                                          "required": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "string"
                                                            }
                                                          },
                                                          "additionalProperties": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "properties"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "exportFunctions": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "receiveParamOfType": {
                                                    "type": "string"
                                                  },
                                                  "receiveParamsOfTypes": {
                                                    "type": "array",
                                                    "items": {
                                                      "type": "string"
                                                    }
                                                  },
                                                  "returnValueOfType": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "exportInterfaces": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "extend": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string"
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string"
                                                          },
                                                          "allowOmissions": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "exportClasses": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "extend": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string"
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string"
                                                          },
                                                          "allowOmissions": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  },
                                                  "implement": {
                                                    "type": "array",
                                                    "items": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string"
                                                        },
                                                        {
                                                          "type": "object",
                                                          "properties": {
                                                            "type": {
                                                              "type": "string"
                                                            },
                                                            "allowOmissions": {
                                                              "type": "boolean"
                                                            }
                                                          },
                                                          "required": [
                                                            "type"
                                                          ],
                                                          "additionalProperties": false
                                                        }
                                                      ]
                                                    }
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "import": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "from": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "importFrom": {
                                          "anyOf": [
                                            {
                                              "type": "string"
                                            },
                                            {
                                              "type": "array",
                                              "items": {
                                                "type": "string"
                                              }
                                            }
                                          ]
                                        },
                                        "importTypes": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "from": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "importFromCurrentDir": {
                                          "type": "boolean"
                                        },
                                        "importFromParents": {
                                          "type": "boolean"
                                        },
                                        "importFromExternals": {
                                          "type": "boolean"
                                        },
                                        "importTypesFromCurrentDir": {
                                          "type": "boolean"
                                        },
                                        "importTypesFromParents": {
                                          "type": "boolean"
                                        },
                                        "importTypesFromExternals": {
                                          "type": "boolean"
                                        },
                                        "useDeclarationOrder": {
                                          "type": "array",
                                          "items": {
                                            "type": "string"
                                          }
                                        },
                                        "areBarrelFiles": {
                                          "type": "boolean"
                                        }
                                      },
                                      "additionalProperties": false
                                    },
                                    "mustNot": {
                                      "type": "object",
                                      "properties": {
                                        "haveType": {
                                          "type": "string",
                                          "enum": [
                                            "file",
                                            "directory"
                                          ]
                                        },
                                        "haveFiles": {
                                          "type": "array",
                                          "items": {
                                            "type": "string"
                                          }
                                        },
                                        "declareTypes": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "schema": {
                                                    "anyOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          },
                                                          "enum": {
                                                            "minItems": 1,
                                                            "type": "array",
                                                            "items": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "string"
                                                                },
                                                                {
                                                                  "type": "number"
                                                                },
                                                                {
                                                                  "type": "boolean"
                                                                },
                                                                {
                                                                  "type": "null"
                                                                }
                                                              ]
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "enum"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "array"
                                                          },
                                                          "items": {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              }
                                                            },
                                                            "required": [
                                                              "type"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "items"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "object"
                                                          },
                                                          "properties": {
                                                            "type": "object",
                                                            "propertyNames": {
                                                              "type": "string"
                                                            },
                                                            "additionalProperties": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "object",
                                                                  "properties": {},
                                                                  "additionalProperties": false
                                                                },
                                                                {
                                                                  "type": "object",
                                                                  "properties": {
                                                                    "type": {
                                                                      "type": "string",
                                                                      "enum": [
                                                                        "string",
                                                                        "number",
                                                                        "boolean",
                                                                        "null"
                                                                      ]
                                                                    }
                                                                  },
                                                                  "required": [
                                                                    "type"
                                                                  ],
                                                                  "additionalProperties": false
                                                                }
                                                              ]
                                                            }
                                                          },
                                                          "required": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "string"
                                                            }
                                                          },
                                                          "additionalProperties": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "properties"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "declareConstants": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "schema": {
                                                    "anyOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          },
                                                          "enum": {
                                                            "minItems": 1,
                                                            "type": "array",
                                                            "items": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "string"
                                                                },
                                                                {
                                                                  "type": "number"
                                                                },
                                                                {
                                                                  "type": "boolean"
                                                                },
                                                                {
                                                                  "type": "null"
                                                                }
                                                              ]
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "enum"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "array"
                                                          },
                                                          "items": {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              }
                                                            },
                                                            "required": [
                                                              "type"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "items"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "object"
                                                          },
                                                          "properties": {
                                                            "type": "object",
                                                            "propertyNames": {
                                                              "type": "string"
                                                            },
                                                            "additionalProperties": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "object",
                                                                  "properties": {},
                                                                  "additionalProperties": false
                                                                },
                                                                {
                                                                  "type": "object",
                                                                  "properties": {
                                                                    "type": {
                                                                      "type": "string",
                                                                      "enum": [
                                                                        "string",
                                                                        "number",
                                                                        "boolean",
                                                                        "null"
                                                                      ]
                                                                    }
                                                                  },
                                                                  "required": [
                                                                    "type"
                                                                  ],
                                                                  "additionalProperties": false
                                                                }
                                                              ]
                                                            }
                                                          },
                                                          "required": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "string"
                                                            }
                                                          },
                                                          "additionalProperties": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "properties"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "declareFunctions": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "receiveParamOfType": {
                                                    "type": "string"
                                                  },
                                                  "receiveParamsOfTypes": {
                                                    "type": "array",
                                                    "items": {
                                                      "type": "string"
                                                    }
                                                  },
                                                  "returnValueOfType": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "declareInterfaces": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "extend": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string"
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string"
                                                          },
                                                          "allowOmissions": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "declareClasses": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "extend": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string"
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string"
                                                          },
                                                          "allowOmissions": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  },
                                                  "implement": {
                                                    "type": "array",
                                                    "items": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string"
                                                        },
                                                        {
                                                          "type": "object",
                                                          "properties": {
                                                            "type": {
                                                              "type": "string"
                                                            },
                                                            "allowOmissions": {
                                                              "type": "boolean"
                                                            }
                                                          },
                                                          "required": [
                                                            "type"
                                                          ],
                                                          "additionalProperties": false
                                                        }
                                                      ]
                                                    }
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "export": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "from": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "exportTypes": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "anyOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "name": {
                                                        "type": "string"
                                                      },
                                                      "schema": {
                                                        "anyOf": [
                                                          {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              },
                                                              "enum": {
                                                                "minItems": 1,
                                                                "type": "array",
                                                                "items": {
                                                                  "anyOf": [
                                                                    {
                                                                      "type": "string"
                                                                    },
                                                                    {
                                                                      "type": "number"
                                                                    },
                                                                    {
                                                                      "type": "boolean"
                                                                    },
                                                                    {
                                                                      "type": "null"
                                                                    }
                                                                  ]
                                                                }
                                                              }
                                                            },
                                                            "required": [
                                                              "type",
                                                              "enum"
                                                            ],
                                                            "additionalProperties": false
                                                          },
                                                          {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "const": "array"
                                                              },
                                                              "items": {
                                                                "type": "object",
                                                                "properties": {
                                                                  "type": {
                                                                    "type": "string",
                                                                    "enum": [
                                                                      "string",
                                                                      "number",
                                                                      "boolean",
                                                                      "null"
                                                                    ]
                                                                  }
                                                                },
                                                                "required": [
                                                                  "type"
                                                                ],
                                                                "additionalProperties": false
                                                              }
                                                            },
                                                            "required": [
                                                              "type",
                                                              "items"
                                                            ],
                                                            "additionalProperties": false
                                                          },
                                                          {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "const": "object"
                                                              },
                                                              "properties": {
                                                                "type": "object",
                                                                "propertyNames": {
                                                                  "type": "string"
                                                                },
                                                                "additionalProperties": {
                                                                  "anyOf": [
                                                                    {
                                                                      "type": "object",
                                                                      "properties": {},
                                                                      "additionalProperties": false
                                                                    },
                                                                    {
                                                                      "type": "object",
                                                                      "properties": {
                                                                        "type": {
                                                                          "type": "string",
                                                                          "enum": [
                                                                            "string",
                                                                            "number",
                                                                            "boolean",
                                                                            "null"
                                                                          ]
                                                                        }
                                                                      },
                                                                      "required": [
                                                                        "type"
                                                                      ],
                                                                      "additionalProperties": false
                                                                    }
                                                                  ]
                                                                }
                                                              },
                                                              "required": {
                                                                "type": "array",
                                                                "items": {
                                                                  "type": "string"
                                                                }
                                                              },
                                                              "additionalProperties": {
                                                                "type": "boolean"
                                                              }
                                                            },
                                                            "required": [
                                                              "type",
                                                              "properties"
                                                            ],
                                                            "additionalProperties": false
                                                          },
                                                          {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              }
                                                            },
                                                            "required": [
                                                              "type"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "name"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "name": {
                                                        "type": "string"
                                                      },
                                                      "from": {
                                                        "type": "string"
                                                      }
                                                    },
                                                    "required": [
                                                      "name",
                                                      "from"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              }
                                            ]
                                          }
                                        },
                                        "exportConstants": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "from": {
                                                    "type": "string"
                                                  },
                                                  "schema": {
                                                    "anyOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          },
                                                          "enum": {
                                                            "minItems": 1,
                                                            "type": "array",
                                                            "items": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "string"
                                                                },
                                                                {
                                                                  "type": "number"
                                                                },
                                                                {
                                                                  "type": "boolean"
                                                                },
                                                                {
                                                                  "type": "null"
                                                                }
                                                              ]
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "enum"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "array"
                                                          },
                                                          "items": {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              }
                                                            },
                                                            "required": [
                                                              "type"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "items"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "object"
                                                          },
                                                          "properties": {
                                                            "type": "object",
                                                            "propertyNames": {
                                                              "type": "string"
                                                            },
                                                            "additionalProperties": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "object",
                                                                  "properties": {},
                                                                  "additionalProperties": false
                                                                },
                                                                {
                                                                  "type": "object",
                                                                  "properties": {
                                                                    "type": {
                                                                      "type": "string",
                                                                      "enum": [
                                                                        "string",
                                                                        "number",
                                                                        "boolean",
                                                                        "null"
                                                                      ]
                                                                    }
                                                                  },
                                                                  "required": [
                                                                    "type"
                                                                  ],
                                                                  "additionalProperties": false
                                                                }
                                                              ]
                                                            }
                                                          },
                                                          "required": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "string"
                                                            }
                                                          },
                                                          "additionalProperties": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "properties"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "exportFunctions": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "receiveParamOfType": {
                                                    "type": "string"
                                                  },
                                                  "receiveParamsOfTypes": {
                                                    "type": "array",
                                                    "items": {
                                                      "type": "string"
                                                    }
                                                  },
                                                  "returnValueOfType": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "exportInterfaces": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "extend": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string"
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string"
                                                          },
                                                          "allowOmissions": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "exportClasses": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "extend": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string"
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string"
                                                          },
                                                          "allowOmissions": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  },
                                                  "implement": {
                                                    "type": "array",
                                                    "items": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string"
                                                        },
                                                        {
                                                          "type": "object",
                                                          "properties": {
                                                            "type": {
                                                              "type": "string"
                                                            },
                                                            "allowOmissions": {
                                                              "type": "boolean"
                                                            }
                                                          },
                                                          "required": [
                                                            "type"
                                                          ],
                                                          "additionalProperties": false
                                                        }
                                                      ]
                                                    }
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "import": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "from": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "importFrom": {
                                          "anyOf": [
                                            {
                                              "type": "string"
                                            },
                                            {
                                              "type": "array",
                                              "items": {
                                                "type": "string"
                                              }
                                            }
                                          ]
                                        },
                                        "importTypes": {
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "from": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "importFromCurrentDir": {
                                          "type": "boolean"
                                        },
                                        "importFromParents": {
                                          "type": "boolean"
                                        },
                                        "importFromExternals": {
                                          "type": "boolean"
                                        },
                                        "importTypesFromCurrentDir": {
                                          "type": "boolean"
                                        },
                                        "importTypesFromParents": {
                                          "type": "boolean"
                                        },
                                        "importTypesFromExternals": {
                                          "type": "boolean"
                                        },
                                        "useDeclarationOrder": {
                                          "type": "array",
                                          "items": {
                                            "type": "string"
                                          }
                                        },
                                        "areBarrelFiles": {
                                          "type": "boolean"
                                        }
                                      },
                                      "additionalProperties": false
                                    }
                                  },
                                  "required": [
                                    "mustNot"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            {
                              "type": "object",
                              "properties": {
                                "use": {
                                  "type": "string",
                                  "pattern": "^[a-z0-9-]+\\/[a-z0-9-]+$"
                                },
                                "name": {
                                  "type": "string",
                                  "pattern": "^[a-z0-9-]+$"
                                },
                                "description": {
                                  "type": "string"
                                },
                                "if": {
                                  "anyOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "hasFile": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "hasFile"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "placeholderSatisfies": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "placeholderSatisfies"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "for": {
                                  "type": "object",
                                  "properties": {
                                    "files": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "array",
                                          "items": {
                                            "type": "string"
                                          }
                                        }
                                      ]
                                    }
                                  },
                                  "required": [
                                    "files"
                                  ],
                                  "additionalProperties": false
                                },
                                "excludeFiles": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                },
                                "must": {
                                  "type": "object",
                                  "properties": {
                                    "haveType": {
                                      "type": "string",
                                      "enum": [
                                        "file",
                                        "directory"
                                      ]
                                    },
                                    "haveFiles": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "declareTypes": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "schema": {
                                                "anyOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "enum": [
                                                          "string",
                                                          "number",
                                                          "boolean",
                                                          "null"
                                                        ]
                                                      },
                                                      "enum": {
                                                        "minItems": 1,
                                                        "type": "array",
                                                        "items": {
                                                          "anyOf": [
                                                            {
                                                              "type": "string"
                                                            },
                                                            {
                                                              "type": "number"
                                                            },
                                                            {
                                                              "type": "boolean"
                                                            },
                                                            {
                                                              "type": "null"
                                                            }
                                                          ]
                                                        }
                                                      }
                                                    },
                                                    "required": [
                                                      "type",
                                                      "enum"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "const": "array"
                                                      },
                                                      "items": {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    },
                                                    "required": [
                                                      "type",
                                                      "items"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "const": "object"
                                                      },
                                                      "properties": {
                                                        "type": "object",
                                                        "propertyNames": {
                                                          "type": "string"
                                                        },
                                                        "additionalProperties": {
                                                          "anyOf": [
                                                            {
                                                              "type": "object",
                                                              "properties": {},
                                                              "additionalProperties": false
                                                            },
                                                            {
                                                              "type": "object",
                                                              "properties": {
                                                                "type": {
                                                                  "type": "string",
                                                                  "enum": [
                                                                    "string",
                                                                    "number",
                                                                    "boolean",
                                                                    "null"
                                                                  ]
                                                                }
                                                              },
                                                              "required": [
                                                                "type"
                                                              ],
                                                              "additionalProperties": false
                                                            }
                                                          ]
                                                        }
                                                      },
                                                      "required": {
                                                        "type": "array",
                                                        "items": {
                                                          "type": "string"
                                                        }
                                                      },
                                                      "additionalProperties": {
                                                        "type": "boolean"
                                                      }
                                                    },
                                                    "required": [
                                                      "type",
                                                      "properties"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "enum": [
                                                          "string",
                                                          "number",
                                                          "boolean",
                                                          "null"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "type"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "declareConstants": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "schema": {
                                                "anyOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "enum": [
                                                          "string",
                                                          "number",
                                                          "boolean",
                                                          "null"
                                                        ]
                                                      },
                                                      "enum": {
                                                        "minItems": 1,
                                                        "type": "array",
                                                        "items": {
                                                          "anyOf": [
                                                            {
                                                              "type": "string"
                                                            },
                                                            {
                                                              "type": "number"
                                                            },
                                                            {
                                                              "type": "boolean"
                                                            },
                                                            {
                                                              "type": "null"
                                                            }
                                                          ]
                                                        }
                                                      }
                                                    },
                                                    "required": [
                                                      "type",
                                                      "enum"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "const": "array"
                                                      },
                                                      "items": {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    },
                                                    "required": [
                                                      "type",
                                                      "items"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "const": "object"
                                                      },
                                                      "properties": {
                                                        "type": "object",
                                                        "propertyNames": {
                                                          "type": "string"
                                                        },
                                                        "additionalProperties": {
                                                          "anyOf": [
                                                            {
                                                              "type": "object",
                                                              "properties": {},
                                                              "additionalProperties": false
                                                            },
                                                            {
                                                              "type": "object",
                                                              "properties": {
                                                                "type": {
                                                                  "type": "string",
                                                                  "enum": [
                                                                    "string",
                                                                    "number",
                                                                    "boolean",
                                                                    "null"
                                                                  ]
                                                                }
                                                              },
                                                              "required": [
                                                                "type"
                                                              ],
                                                              "additionalProperties": false
                                                            }
                                                          ]
                                                        }
                                                      },
                                                      "required": {
                                                        "type": "array",
                                                        "items": {
                                                          "type": "string"
                                                        }
                                                      },
                                                      "additionalProperties": {
                                                        "type": "boolean"
                                                      }
                                                    },
                                                    "required": [
                                                      "type",
                                                      "properties"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "enum": [
                                                          "string",
                                                          "number",
                                                          "boolean",
                                                          "null"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "type"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "declareFunctions": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "receiveParamOfType": {
                                                "type": "string"
                                              },
                                              "receiveParamsOfTypes": {
                                                "type": "array",
                                                "items": {
                                                  "type": "string"
                                                }
                                              },
                                              "returnValueOfType": {
                                                "type": "string"
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "declareInterfaces": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "extend": {
                                                "anyOf": [
                                                  {
                                                    "type": "string"
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string"
                                                      },
                                                      "allowOmissions": {
                                                        "type": "boolean"
                                                      }
                                                    },
                                                    "required": [
                                                      "type"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "declareClasses": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "extend": {
                                                "anyOf": [
                                                  {
                                                    "type": "string"
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string"
                                                      },
                                                      "allowOmissions": {
                                                        "type": "boolean"
                                                      }
                                                    },
                                                    "required": [
                                                      "type"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              },
                                              "implement": {
                                                "type": "array",
                                                "items": {
                                                  "anyOf": [
                                                    {
                                                      "type": "string"
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "type": {
                                                          "type": "string"
                                                        },
                                                        "allowOmissions": {
                                                          "type": "boolean"
                                                        }
                                                      },
                                                      "required": [
                                                        "type"
                                                      ],
                                                      "additionalProperties": false
                                                    }
                                                  ]
                                                }
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "export": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "from": {
                                                "type": "string"
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "exportTypes": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "anyOf": [
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "schema": {
                                                    "anyOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          },
                                                          "enum": {
                                                            "minItems": 1,
                                                            "type": "array",
                                                            "items": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "string"
                                                                },
                                                                {
                                                                  "type": "number"
                                                                },
                                                                {
                                                                  "type": "boolean"
                                                                },
                                                                {
                                                                  "type": "null"
                                                                }
                                                              ]
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "enum"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "array"
                                                          },
                                                          "items": {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              }
                                                            },
                                                            "required": [
                                                              "type"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "items"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "object"
                                                          },
                                                          "properties": {
                                                            "type": "object",
                                                            "propertyNames": {
                                                              "type": "string"
                                                            },
                                                            "additionalProperties": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "object",
                                                                  "properties": {},
                                                                  "additionalProperties": false
                                                                },
                                                                {
                                                                  "type": "object",
                                                                  "properties": {
                                                                    "type": {
                                                                      "type": "string",
                                                                      "enum": [
                                                                        "string",
                                                                        "number",
                                                                        "boolean",
                                                                        "null"
                                                                      ]
                                                                    }
                                                                  },
                                                                  "required": [
                                                                    "type"
                                                                  ],
                                                                  "additionalProperties": false
                                                                }
                                                              ]
                                                            }
                                                          },
                                                          "required": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "string"
                                                            }
                                                          },
                                                          "additionalProperties": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "properties"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "from": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name",
                                                  "from"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        ]
                                      }
                                    },
                                    "exportConstants": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "from": {
                                                "type": "string"
                                              },
                                              "schema": {
                                                "anyOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "enum": [
                                                          "string",
                                                          "number",
                                                          "boolean",
                                                          "null"
                                                        ]
                                                      },
                                                      "enum": {
                                                        "minItems": 1,
                                                        "type": "array",
                                                        "items": {
                                                          "anyOf": [
                                                            {
                                                              "type": "string"
                                                            },
                                                            {
                                                              "type": "number"
                                                            },
                                                            {
                                                              "type": "boolean"
                                                            },
                                                            {
                                                              "type": "null"
                                                            }
                                                          ]
                                                        }
                                                      }
                                                    },
                                                    "required": [
                                                      "type",
                                                      "enum"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "const": "array"
                                                      },
                                                      "items": {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    },
                                                    "required": [
                                                      "type",
                                                      "items"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "const": "object"
                                                      },
                                                      "properties": {
                                                        "type": "object",
                                                        "propertyNames": {
                                                          "type": "string"
                                                        },
                                                        "additionalProperties": {
                                                          "anyOf": [
                                                            {
                                                              "type": "object",
                                                              "properties": {},
                                                              "additionalProperties": false
                                                            },
                                                            {
                                                              "type": "object",
                                                              "properties": {
                                                                "type": {
                                                                  "type": "string",
                                                                  "enum": [
                                                                    "string",
                                                                    "number",
                                                                    "boolean",
                                                                    "null"
                                                                  ]
                                                                }
                                                              },
                                                              "required": [
                                                                "type"
                                                              ],
                                                              "additionalProperties": false
                                                            }
                                                          ]
                                                        }
                                                      },
                                                      "required": {
                                                        "type": "array",
                                                        "items": {
                                                          "type": "string"
                                                        }
                                                      },
                                                      "additionalProperties": {
                                                        "type": "boolean"
                                                      }
                                                    },
                                                    "required": [
                                                      "type",
                                                      "properties"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "enum": [
                                                          "string",
                                                          "number",
                                                          "boolean",
                                                          "null"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "type"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "exportFunctions": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "receiveParamOfType": {
                                                "type": "string"
                                              },
                                              "receiveParamsOfTypes": {
                                                "type": "array",
                                                "items": {
                                                  "type": "string"
                                                }
                                              },
                                              "returnValueOfType": {
                                                "type": "string"
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "exportInterfaces": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "extend": {
                                                "anyOf": [
                                                  {
                                                    "type": "string"
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string"
                                                      },
                                                      "allowOmissions": {
                                                        "type": "boolean"
                                                      }
                                                    },
                                                    "required": [
                                                      "type"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "exportClasses": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "extend": {
                                                "anyOf": [
                                                  {
                                                    "type": "string"
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string"
                                                      },
                                                      "allowOmissions": {
                                                        "type": "boolean"
                                                      }
                                                    },
                                                    "required": [
                                                      "type"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              },
                                              "implement": {
                                                "type": "array",
                                                "items": {
                                                  "anyOf": [
                                                    {
                                                      "type": "string"
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "type": {
                                                          "type": "string"
                                                        },
                                                        "allowOmissions": {
                                                          "type": "boolean"
                                                        }
                                                      },
                                                      "required": [
                                                        "type"
                                                      ],
                                                      "additionalProperties": false
                                                    }
                                                  ]
                                                }
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "import": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "from": {
                                                "type": "string"
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "importFrom": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "array",
                                          "items": {
                                            "type": "string"
                                          }
                                        }
                                      ]
                                    },
                                    "importTypes": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "from": {
                                                "type": "string"
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "importFromCurrentDir": {
                                      "type": "boolean"
                                    },
                                    "importFromParents": {
                                      "type": "boolean"
                                    },
                                    "importFromExternals": {
                                      "type": "boolean"
                                    },
                                    "importTypesFromCurrentDir": {
                                      "type": "boolean"
                                    },
                                    "importTypesFromParents": {
                                      "type": "boolean"
                                    },
                                    "importTypesFromExternals": {
                                      "type": "boolean"
                                    },
                                    "useDeclarationOrder": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "areBarrelFiles": {
                                      "type": "boolean"
                                    }
                                  },
                                  "additionalProperties": false
                                },
                                "mustNot": {
                                  "type": "object",
                                  "properties": {
                                    "haveType": {
                                      "type": "string",
                                      "enum": [
                                        "file",
                                        "directory"
                                      ]
                                    },
                                    "haveFiles": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "declareTypes": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "schema": {
                                                "anyOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "enum": [
                                                          "string",
                                                          "number",
                                                          "boolean",
                                                          "null"
                                                        ]
                                                      },
                                                      "enum": {
                                                        "minItems": 1,
                                                        "type": "array",
                                                        "items": {
                                                          "anyOf": [
                                                            {
                                                              "type": "string"
                                                            },
                                                            {
                                                              "type": "number"
                                                            },
                                                            {
                                                              "type": "boolean"
                                                            },
                                                            {
                                                              "type": "null"
                                                            }
                                                          ]
                                                        }
                                                      }
                                                    },
                                                    "required": [
                                                      "type",
                                                      "enum"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "const": "array"
                                                      },
                                                      "items": {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    },
                                                    "required": [
                                                      "type",
                                                      "items"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "const": "object"
                                                      },
                                                      "properties": {
                                                        "type": "object",
                                                        "propertyNames": {
                                                          "type": "string"
                                                        },
                                                        "additionalProperties": {
                                                          "anyOf": [
                                                            {
                                                              "type": "object",
                                                              "properties": {},
                                                              "additionalProperties": false
                                                            },
                                                            {
                                                              "type": "object",
                                                              "properties": {
                                                                "type": {
                                                                  "type": "string",
                                                                  "enum": [
                                                                    "string",
                                                                    "number",
                                                                    "boolean",
                                                                    "null"
                                                                  ]
                                                                }
                                                              },
                                                              "required": [
                                                                "type"
                                                              ],
                                                              "additionalProperties": false
                                                            }
                                                          ]
                                                        }
                                                      },
                                                      "required": {
                                                        "type": "array",
                                                        "items": {
                                                          "type": "string"
                                                        }
                                                      },
                                                      "additionalProperties": {
                                                        "type": "boolean"
                                                      }
                                                    },
                                                    "required": [
                                                      "type",
                                                      "properties"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "enum": [
                                                          "string",
                                                          "number",
                                                          "boolean",
                                                          "null"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "type"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "declareConstants": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "schema": {
                                                "anyOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "enum": [
                                                          "string",
                                                          "number",
                                                          "boolean",
                                                          "null"
                                                        ]
                                                      },
                                                      "enum": {
                                                        "minItems": 1,
                                                        "type": "array",
                                                        "items": {
                                                          "anyOf": [
                                                            {
                                                              "type": "string"
                                                            },
                                                            {
                                                              "type": "number"
                                                            },
                                                            {
                                                              "type": "boolean"
                                                            },
                                                            {
                                                              "type": "null"
                                                            }
                                                          ]
                                                        }
                                                      }
                                                    },
                                                    "required": [
                                                      "type",
                                                      "enum"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "const": "array"
                                                      },
                                                      "items": {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    },
                                                    "required": [
                                                      "type",
                                                      "items"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "const": "object"
                                                      },
                                                      "properties": {
                                                        "type": "object",
                                                        "propertyNames": {
                                                          "type": "string"
                                                        },
                                                        "additionalProperties": {
                                                          "anyOf": [
                                                            {
                                                              "type": "object",
                                                              "properties": {},
                                                              "additionalProperties": false
                                                            },
                                                            {
                                                              "type": "object",
                                                              "properties": {
                                                                "type": {
                                                                  "type": "string",
                                                                  "enum": [
                                                                    "string",
                                                                    "number",
                                                                    "boolean",
                                                                    "null"
                                                                  ]
                                                                }
                                                              },
                                                              "required": [
                                                                "type"
                                                              ],
                                                              "additionalProperties": false
                                                            }
                                                          ]
                                                        }
                                                      },
                                                      "required": {
                                                        "type": "array",
                                                        "items": {
                                                          "type": "string"
                                                        }
                                                      },
                                                      "additionalProperties": {
                                                        "type": "boolean"
                                                      }
                                                    },
                                                    "required": [
                                                      "type",
                                                      "properties"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "enum": [
                                                          "string",
                                                          "number",
                                                          "boolean",
                                                          "null"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "type"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "declareFunctions": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "receiveParamOfType": {
                                                "type": "string"
                                              },
                                              "receiveParamsOfTypes": {
                                                "type": "array",
                                                "items": {
                                                  "type": "string"
                                                }
                                              },
                                              "returnValueOfType": {
                                                "type": "string"
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "declareInterfaces": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "extend": {
                                                "anyOf": [
                                                  {
                                                    "type": "string"
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string"
                                                      },
                                                      "allowOmissions": {
                                                        "type": "boolean"
                                                      }
                                                    },
                                                    "required": [
                                                      "type"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "declareClasses": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "extend": {
                                                "anyOf": [
                                                  {
                                                    "type": "string"
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string"
                                                      },
                                                      "allowOmissions": {
                                                        "type": "boolean"
                                                      }
                                                    },
                                                    "required": [
                                                      "type"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              },
                                              "implement": {
                                                "type": "array",
                                                "items": {
                                                  "anyOf": [
                                                    {
                                                      "type": "string"
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "type": {
                                                          "type": "string"
                                                        },
                                                        "allowOmissions": {
                                                          "type": "boolean"
                                                        }
                                                      },
                                                      "required": [
                                                        "type"
                                                      ],
                                                      "additionalProperties": false
                                                    }
                                                  ]
                                                }
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "export": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "from": {
                                                "type": "string"
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "exportTypes": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "anyOf": [
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "schema": {
                                                    "anyOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          },
                                                          "enum": {
                                                            "minItems": 1,
                                                            "type": "array",
                                                            "items": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "string"
                                                                },
                                                                {
                                                                  "type": "number"
                                                                },
                                                                {
                                                                  "type": "boolean"
                                                                },
                                                                {
                                                                  "type": "null"
                                                                }
                                                              ]
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "enum"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "array"
                                                          },
                                                          "items": {
                                                            "type": "object",
                                                            "properties": {
                                                              "type": {
                                                                "type": "string",
                                                                "enum": [
                                                                  "string",
                                                                  "number",
                                                                  "boolean",
                                                                  "null"
                                                                ]
                                                              }
                                                            },
                                                            "required": [
                                                              "type"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "items"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "const": "object"
                                                          },
                                                          "properties": {
                                                            "type": "object",
                                                            "propertyNames": {
                                                              "type": "string"
                                                            },
                                                            "additionalProperties": {
                                                              "anyOf": [
                                                                {
                                                                  "type": "object",
                                                                  "properties": {},
                                                                  "additionalProperties": false
                                                                },
                                                                {
                                                                  "type": "object",
                                                                  "properties": {
                                                                    "type": {
                                                                      "type": "string",
                                                                      "enum": [
                                                                        "string",
                                                                        "number",
                                                                        "boolean",
                                                                        "null"
                                                                      ]
                                                                    }
                                                                  },
                                                                  "required": [
                                                                    "type"
                                                                  ],
                                                                  "additionalProperties": false
                                                                }
                                                              ]
                                                            }
                                                          },
                                                          "required": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "string"
                                                            }
                                                          },
                                                          "additionalProperties": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "type",
                                                          "properties"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "name"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string"
                                                  },
                                                  "from": {
                                                    "type": "string"
                                                  }
                                                },
                                                "required": [
                                                  "name",
                                                  "from"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        ]
                                      }
                                    },
                                    "exportConstants": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "from": {
                                                "type": "string"
                                              },
                                              "schema": {
                                                "anyOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "enum": [
                                                          "string",
                                                          "number",
                                                          "boolean",
                                                          "null"
                                                        ]
                                                      },
                                                      "enum": {
                                                        "minItems": 1,
                                                        "type": "array",
                                                        "items": {
                                                          "anyOf": [
                                                            {
                                                              "type": "string"
                                                            },
                                                            {
                                                              "type": "number"
                                                            },
                                                            {
                                                              "type": "boolean"
                                                            },
                                                            {
                                                              "type": "null"
                                                            }
                                                          ]
                                                        }
                                                      }
                                                    },
                                                    "required": [
                                                      "type",
                                                      "enum"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "const": "array"
                                                      },
                                                      "items": {
                                                        "type": "object",
                                                        "properties": {
                                                          "type": {
                                                            "type": "string",
                                                            "enum": [
                                                              "string",
                                                              "number",
                                                              "boolean",
                                                              "null"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "type"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    },
                                                    "required": [
                                                      "type",
                                                      "items"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "const": "object"
                                                      },
                                                      "properties": {
                                                        "type": "object",
                                                        "propertyNames": {
                                                          "type": "string"
                                                        },
                                                        "additionalProperties": {
                                                          "anyOf": [
                                                            {
                                                              "type": "object",
                                                              "properties": {},
                                                              "additionalProperties": false
                                                            },
                                                            {
                                                              "type": "object",
                                                              "properties": {
                                                                "type": {
                                                                  "type": "string",
                                                                  "enum": [
                                                                    "string",
                                                                    "number",
                                                                    "boolean",
                                                                    "null"
                                                                  ]
                                                                }
                                                              },
                                                              "required": [
                                                                "type"
                                                              ],
                                                              "additionalProperties": false
                                                            }
                                                          ]
                                                        }
                                                      },
                                                      "required": {
                                                        "type": "array",
                                                        "items": {
                                                          "type": "string"
                                                        }
                                                      },
                                                      "additionalProperties": {
                                                        "type": "boolean"
                                                      }
                                                    },
                                                    "required": [
                                                      "type",
                                                      "properties"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "enum": [
                                                          "string",
                                                          "number",
                                                          "boolean",
                                                          "null"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "type"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "exportFunctions": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "receiveParamOfType": {
                                                "type": "string"
                                              },
                                              "receiveParamsOfTypes": {
                                                "type": "array",
                                                "items": {
                                                  "type": "string"
                                                }
                                              },
                                              "returnValueOfType": {
                                                "type": "string"
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "exportInterfaces": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "extend": {
                                                "anyOf": [
                                                  {
                                                    "type": "string"
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string"
                                                      },
                                                      "allowOmissions": {
                                                        "type": "boolean"
                                                      }
                                                    },
                                                    "required": [
                                                      "type"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "exportClasses": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "extend": {
                                                "anyOf": [
                                                  {
                                                    "type": "string"
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string"
                                                      },
                                                      "allowOmissions": {
                                                        "type": "boolean"
                                                      }
                                                    },
                                                    "required": [
                                                      "type"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              },
                                              "implement": {
                                                "type": "array",
                                                "items": {
                                                  "anyOf": [
                                                    {
                                                      "type": "string"
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "type": {
                                                          "type": "string"
                                                        },
                                                        "allowOmissions": {
                                                          "type": "boolean"
                                                        }
                                                      },
                                                      "required": [
                                                        "type"
                                                      ],
                                                      "additionalProperties": false
                                                    }
                                                  ]
                                                }
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "import": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "from": {
                                                "type": "string"
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "importFrom": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "array",
                                          "items": {
                                            "type": "string"
                                          }
                                        }
                                      ]
                                    },
                                    "importTypes": {
                                      "type": "array",
                                      "items": {
                                        "anyOf": [
                                          {
                                            "type": "string"
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string"
                                              },
                                              "from": {
                                                "type": "string"
                                              }
                                            },
                                            "required": [
                                              "name"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "importFromCurrentDir": {
                                      "type": "boolean"
                                    },
                                    "importFromParents": {
                                      "type": "boolean"
                                    },
                                    "importFromExternals": {
                                      "type": "boolean"
                                    },
                                    "importTypesFromCurrentDir": {
                                      "type": "boolean"
                                    },
                                    "importTypesFromParents": {
                                      "type": "boolean"
                                    },
                                    "importTypesFromExternals": {
                                      "type": "boolean"
                                    },
                                    "useDeclarationOrder": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "areBarrelFiles": {
                                      "type": "boolean"
                                    }
                                  },
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "use"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "mustNot": {
                    "type": "object",
                    "properties": {
                      "haveType": {
                        "type": "string",
                        "enum": [
                          "file",
                          "directory"
                        ]
                      },
                      "haveFiles": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "declareTypes": {
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "schema": {
                                  "anyOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "enum": [
                                            "string",
                                            "number",
                                            "boolean",
                                            "null"
                                          ]
                                        },
                                        "enum": {
                                          "minItems": 1,
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "boolean"
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          }
                                        }
                                      },
                                      "required": [
                                        "type",
                                        "enum"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "const": "array"
                                        },
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string",
                                              "enum": [
                                                "string",
                                                "number",
                                                "boolean",
                                                "null"
                                              ]
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "required": [
                                        "type",
                                        "items"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "const": "object"
                                        },
                                        "properties": {
                                          "type": "object",
                                          "propertyNames": {
                                            "type": "string"
                                          },
                                          "additionalProperties": {
                                            "anyOf": [
                                              {
                                                "type": "object",
                                                "properties": {},
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "type": {
                                                    "type": "string",
                                                    "enum": [
                                                      "string",
                                                      "number",
                                                      "boolean",
                                                      "null"
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "type"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "required": {
                                          "type": "array",
                                          "items": {
                                            "type": "string"
                                          }
                                        },
                                        "additionalProperties": {
                                          "type": "boolean"
                                        }
                                      },
                                      "required": [
                                        "type",
                                        "properties"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "enum": [
                                            "string",
                                            "number",
                                            "boolean",
                                            "null"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "type"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "name"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      },
                      "declareConstants": {
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "schema": {
                                  "anyOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "enum": [
                                            "string",
                                            "number",
                                            "boolean",
                                            "null"
                                          ]
                                        },
                                        "enum": {
                                          "minItems": 1,
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "boolean"
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          }
                                        }
                                      },
                                      "required": [
                                        "type",
                                        "enum"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "const": "array"
                                        },
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string",
                                              "enum": [
                                                "string",
                                                "number",
                                                "boolean",
                                                "null"
                                              ]
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "required": [
                                        "type",
                                        "items"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "const": "object"
                                        },
                                        "properties": {
                                          "type": "object",
                                          "propertyNames": {
                                            "type": "string"
                                          },
                                          "additionalProperties": {
                                            "anyOf": [
                                              {
                                                "type": "object",
                                                "properties": {},
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "type": {
                                                    "type": "string",
                                                    "enum": [
                                                      "string",
                                                      "number",
                                                      "boolean",
                                                      "null"
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "type"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "required": {
                                          "type": "array",
                                          "items": {
                                            "type": "string"
                                          }
                                        },
                                        "additionalProperties": {
                                          "type": "boolean"
                                        }
                                      },
                                      "required": [
                                        "type",
                                        "properties"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "enum": [
                                            "string",
                                            "number",
                                            "boolean",
                                            "null"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "type"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "name"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      },
                      "declareFunctions": {
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "receiveParamOfType": {
                                  "type": "string"
                                },
                                "receiveParamsOfTypes": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                },
                                "returnValueOfType": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "name"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      },
                      "declareInterfaces": {
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "extend": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string"
                                        },
                                        "allowOmissions": {
                                          "type": "boolean"
                                        }
                                      },
                                      "required": [
                                        "type"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "name"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      },
                      "declareClasses": {
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "extend": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string"
                                        },
                                        "allowOmissions": {
                                          "type": "boolean"
                                        }
                                      },
                                      "required": [
                                        "type"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "implement": {
                                  "type": "array",
                                  "items": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "type": {
                                            "type": "string"
                                          },
                                          "allowOmissions": {
                                            "type": "boolean"
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ],
                                        "additionalProperties": false
                                      }
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "name"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      },
                      "export": {
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "from": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "name"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      },
                      "exportTypes": {
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    },
                                    "schema": {
                                      "anyOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string",
                                              "enum": [
                                                "string",
                                                "number",
                                                "boolean",
                                                "null"
                                              ]
                                            },
                                            "enum": {
                                              "minItems": 1,
                                              "type": "array",
                                              "items": {
                                                "anyOf": [
                                                  {
                                                    "type": "string"
                                                  },
                                                  {
                                                    "type": "number"
                                                  },
                                                  {
                                                    "type": "boolean"
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              }
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "enum"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string",
                                              "const": "array"
                                            },
                                            "items": {
                                              "type": "object",
                                              "properties": {
                                                "type": {
                                                  "type": "string",
                                                  "enum": [
                                                    "string",
                                                    "number",
                                                    "boolean",
                                                    "null"
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "type"
                                              ],
                                              "additionalProperties": false
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "items"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string",
                                              "const": "object"
                                            },
                                            "properties": {
                                              "type": "object",
                                              "propertyNames": {
                                                "type": "string"
                                              },
                                              "additionalProperties": {
                                                "anyOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {},
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "type": {
                                                        "type": "string",
                                                        "enum": [
                                                          "string",
                                                          "number",
                                                          "boolean",
                                                          "null"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "type"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              }
                                            },
                                            "required": {
                                              "type": "array",
                                              "items": {
                                                "type": "string"
                                              }
                                            },
                                            "additionalProperties": {
                                              "type": "boolean"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "properties"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string",
                                              "enum": [
                                                "string",
                                                "number",
                                                "boolean",
                                                "null"
                                              ]
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ],
                                          "additionalProperties": false
                                        }
                                      ]
                                    }
                                  },
                                  "required": [
                                    "name"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string"
                                    },
                                    "from": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "name",
                                    "from"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          ]
                        }
                      },
                      "exportConstants": {
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "from": {
                                  "type": "string"
                                },
                                "schema": {
                                  "anyOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "enum": [
                                            "string",
                                            "number",
                                            "boolean",
                                            "null"
                                          ]
                                        },
                                        "enum": {
                                          "minItems": 1,
                                          "type": "array",
                                          "items": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "number"
                                              },
                                              {
                                                "type": "boolean"
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          }
                                        }
                                      },
                                      "required": [
                                        "type",
                                        "enum"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "const": "array"
                                        },
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "type": {
                                              "type": "string",
                                              "enum": [
                                                "string",
                                                "number",
                                                "boolean",
                                                "null"
                                              ]
                                            }
                                          },
                                          "required": [
                                            "type"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "required": [
                                        "type",
                                        "items"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "const": "object"
                                        },
                                        "properties": {
                                          "type": "object",
                                          "propertyNames": {
                                            "type": "string"
                                          },
                                          "additionalProperties": {
                                            "anyOf": [
                                              {
                                                "type": "object",
                                                "properties": {},
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "type": {
                                                    "type": "string",
                                                    "enum": [
                                                      "string",
                                                      "number",
                                                      "boolean",
                                                      "null"
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "type"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "required": {
                                          "type": "array",
                                          "items": {
                                            "type": "string"
                                          }
                                        },
                                        "additionalProperties": {
                                          "type": "boolean"
                                        }
                                      },
                                      "required": [
                                        "type",
                                        "properties"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "enum": [
                                            "string",
                                            "number",
                                            "boolean",
                                            "null"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "type"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "name"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      },
                      "exportFunctions": {
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "receiveParamOfType": {
                                  "type": "string"
                                },
                                "receiveParamsOfTypes": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                },
                                "returnValueOfType": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "name"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      },
                      "exportInterfaces": {
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "extend": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string"
                                        },
                                        "allowOmissions": {
                                          "type": "boolean"
                                        }
                                      },
                                      "required": [
                                        "type"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "name"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      },
                      "exportClasses": {
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "extend": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string"
                                        },
                                        "allowOmissions": {
                                          "type": "boolean"
                                        }
                                      },
                                      "required": [
                                        "type"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "implement": {
                                  "type": "array",
                                  "items": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "type": {
                                            "type": "string"
                                          },
                                          "allowOmissions": {
                                            "type": "boolean"
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ],
                                        "additionalProperties": false
                                      }
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "name"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      },
                      "import": {
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "from": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "name"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      },
                      "importFrom": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        ]
                      },
                      "importTypes": {
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "from": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "name"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      },
                      "importFromCurrentDir": {
                        "type": "boolean"
                      },
                      "importFromParents": {
                        "type": "boolean"
                      },
                      "importFromExternals": {
                        "type": "boolean"
                      },
                      "importTypesFromCurrentDir": {
                        "type": "boolean"
                      },
                      "importTypesFromParents": {
                        "type": "boolean"
                      },
                      "importTypesFromExternals": {
                        "type": "boolean"
                      },
                      "useDeclarationOrder": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "areBarrelFiles": {
                        "type": "boolean"
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "paths",
                  "mustNot"
                ],
                "additionalProperties": false
              }
            ]
          }
        ]
      }
    }
  },
  "required": [
    "version",
    "conventions"
  ],
  "additionalProperties": false,
  "$id": "https://unpkg.com/konsistent/konsistent.schema.json"
}
