{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://json.schemastore.org/partial-eslint-plugins.json",
  "$comment": "For improvements to this schema, please send a PR to https://github.com/fox-projects/jsonschema-extractor.",
  "type": "object",
  "definitions": {
    "ruleNumber": {
      "description": "ESLint rule\n\n0 - turns the rule off\n1 - turn the rule on as a warning (doesn't affect exit code)\n2 - turn the rule on as an error (exit code is 1 when triggered)\n",
      "type": "integer",
      "minimum": 0,
      "maximum": 2
    },
    "ruleString": {
      "description": "ESLint rule\n\n\"off\" - turns the rule off\n\"warn\" - turn the rule on as a warning (doesn't affect exit code)\n\"error\" - turn the rule on as an error (exit code is 1 when triggered)\n",
      "type": "string",
      "enum": ["off", "warn", "error"]
    },
    "pluginNames": {
      "type": "array",
      "items": {
        "anyOf": [
          {
            "enum": [
              "eslint-plugin-jest",
              "eslint-plugin-n",
              "eslint-plugin-jsx-a11y",
              "eslint-plugin-react",
              "eslint-plugin-unused-imports",
              "eslint-plugin-react-hooks",
              "eslint-plugin-import",
              "eslint-plugin-security",
              "eslint-plugin-unicorn",
              "eslint-plugin-regexp",
              "eslint-plugin-ft-flow",
              "eslint-plugin-prettier",
              "eslint-plugin-cypress",
              "eslint-plugin-eslint-plugin",
              "eslint-plugin-mocha",
              "eslint-plugin-qunit",
              "eslint-plugin-jasmine",
              "eslint-plugin-ember",
              "eslint-plugin-you-dont-need-lodash-underscore",
              "@tanstack/eslint-plugin-query",
              "eslint-plugin-react-perf",
              "eslint-plugin-no-only-tests",
              "eslint-plugin-jsdoc",
              "eslint-plugin-yml",
              "eslint-plugin-vue",
              "eslint-plugin-jest-dom",
              "eslint-plugin-simple-import-sort",
              "eslint-plugin-ava",
              "eslint-plugin-es-x",
              "eslint-plugin-testing-library",
              "eslint-plugin-i18next",
              "eslint-plugin-markdown",
              "eslint-plugin-local-rules",
              "eslint-plugin-html",
              "eslint-plugin-sonarjs",
              "eslint-plugin-lodash",
              "@next/eslint-plugin-next",
              "eslint-plugin-perfectionist",
              "eslint-plugin-canonical",
              "eslint-plugin-jest-formatting",
              "eslint-plugin-babel",
              "eslint-plugin-tailwindcss",
              "eslint-plugin-flowtype",
              "eslint-plugin-lit-a11y",
              "@rushstack/eslint-plugin-security",
              "eslint-plugin-sort-exports",
              "eslint-plugin-json",
              "eslint-plugin-react-native",
              "eslint-plugin-deprecation",
              "eslint-plugin-vuejs-accessibility",
              "eslint-plugin-chai-friendly",
              "eslint-plugin-check-file",
              "eslint-plugin-promise",
              "eslint-plugin-sort-class-members",
              "eslint-plugin-astro",
              "eslint-plugin-playwright",
              "eslint-plugin-typescript-sort-keys",
              "eslint-plugin-react-refresh",
              "eslint-plugin-jsonc",
              "eslint-plugin-ban",
              "eslint-plugin-tsdoc",
              "eslint-plugin-vitest",
              "eslint-plugin-nuxt",
              "eslint-plugin-i",
              "eslint-plugin-css-modules",
              "eslint-plugin-no-secrets"
            ]
          },
          {
            "type": "string"
          }
        ]
      },
      "uniqueItems": true
    }
  },
  "properties": {
    "@angular-eslint/component-class-suffix": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "suffixes": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          ]
        }
      ],
      "description": "Classes decorated with @Component must have suffix \"Component\" (or custom) in their name. See more at https://angular.dev/style-guide#style-02-03\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/component-class-suffix.md"
    },
    "@angular-eslint/component-max-inline-declarations": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "template": {
                  "minimum": 0,
                  "type": "number"
                },
                "styles": {
                  "minimum": 0,
                  "type": "number"
                },
                "animations": {
                  "minimum": 0,
                  "type": "number"
                }
              }
            }
          ]
        }
      ],
      "description": "Enforces a maximum number of lines in inline template, styles and animations. See more at https://angular.dev/style-guide#style-05-04\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/component-max-inline-declarations.md"
    },
    "@angular-eslint/component-selector": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "type": {
                  "oneOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": ["element", "attribute"]
                      }
                    }
                  ]
                },
                "prefix": {
                  "oneOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "array"
                    }
                  ]
                },
                "style": {
                  "type": "string",
                  "enum": ["camelCase", "kebab-case"]
                }
              }
            }
          ]
        }
      ],
      "description": "Component selectors should follow given naming rules. See more at https://angular.dev/style-guide#style-02-07, https://angular.dev/style-guide#style-05-02\n      and https://angular.dev/style-guide#style-05-03.\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/component-selector.md"
    },
    "@angular-eslint/consistent-component-styles": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "Ensures consistent usage of `styles`/`styleUrls`/`styleUrl` within Component metadata\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/consistent-component-styles.md"
    },
    "@angular-eslint/contextual-decorator": {
      "description": "Ensures that classes use contextual decorators in its body\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/contextual-decorator.md"
    },
    "@angular-eslint/contextual-lifecycle": {
      "description": "Ensures that lifecycle methods are used in a correct context\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/contextual-lifecycle.md"
    },
    "@angular-eslint/directive-class-suffix": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "suffixes": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          ]
        }
      ],
      "description": "Classes decorated with @Directive must have suffix \"Directive\" (or custom) in their name. See more at https://angular.dev/style-guide#style-02-03\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/directive-class-suffix.md"
    },
    "@angular-eslint/directive-selector": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "type": {
                  "oneOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": ["element", "attribute"]
                      }
                    }
                  ]
                },
                "prefix": {
                  "oneOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "array"
                    }
                  ]
                },
                "style": {
                  "type": "string",
                  "enum": ["camelCase", "kebab-case"]
                }
              }
            }
          ]
        }
      ],
      "description": "Directive selectors should follow given naming rules. See more at https://angular.dev/style-guide#style-02-06 and https://angular.dev/style-guide#style-02-08.\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/directive-selector.md"
    },
    "@angular-eslint/no-async-lifecycle-method": {
      "description": "Angular Lifecycle methods should not be async. Angular does not wait for async lifecycle but the code incorrectly suggests it does.\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/no-async-lifecycle-method.md"
    },
    "@angular-eslint/no-attribute-decorator": {
      "description": "The @Attribute decorator is used to obtain a single value for an attribute. This is a much less common use-case than getting a stream of values (using @Input), so often the @Attribute decorator is mistakenly used when @Input was what was intended. This rule disallows usage of @Attribute decorator altogether in order to prevent these mistakes.\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/no-attribute-decorator.md"
    },
    "@angular-eslint/no-conflicting-lifecycle": {
      "description": "Ensures that directives not implement conflicting lifecycle interfaces.\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/no-conflicting-lifecycle.md"
    },
    "@angular-eslint/no-duplicates-in-metadata-arrays": {
      "description": "Ensures that metadata arrays do not contain duplicate entries.\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/no-duplicates-in-metadata-arrays.md"
    },
    "@angular-eslint/no-empty-lifecycle-method": {
      "description": "Disallows declaring empty lifecycle methods\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/no-empty-lifecycle-method.md"
    },
    "@angular-eslint/no-forward-ref": {
      "description": "Disallows usage of `forwardRef` references for DI\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/no-forward-ref.md"
    },
    "@angular-eslint/no-host-metadata-property": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allowStatic": {
                  "type": "boolean",
                  "default": false
                }
              }
            }
          ]
        }
      ],
      "description": "Disallows usage of the `host` metadata property. NOTE: This used to be recommended by the Angular Team, but now they recommend the exact opposite: https://github.com/angular/angular/issues/54284\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/no-host-metadata-property.md"
    },
    "@angular-eslint/no-input-prefix": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "prefixes": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          ]
        }
      ],
      "description": "Ensures that input bindings, including aliases, are not named or prefixed by the configured disallowed prefixes\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/no-input-prefix.md"
    },
    "@angular-eslint/no-input-rename": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allowedNames": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "A list with allowed input names",
                  "uniqueItems": true
                }
              }
            }
          ]
        }
      ],
      "description": "Ensures that input bindings are not aliased\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/no-input-rename.md"
    },
    "@angular-eslint/no-inputs-metadata-property": {
      "description": "Disallows usage of the `inputs` metadata property. See more at https://angular.dev/style-guide#style-05-12\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/no-inputs-metadata-property.md"
    },
    "@angular-eslint/no-lifecycle-call": {
      "description": "Disallows explicit calls to lifecycle methods\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/no-lifecycle-call.md"
    },
    "@angular-eslint/no-output-native": {
      "description": "Ensures that output bindings, including aliases, are not named as standard DOM events\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/no-output-native.md"
    },
    "@angular-eslint/no-output-on-prefix": {
      "description": "Ensures that output bindings, including aliases, are not named \"on\", nor prefixed with it. See more at https://angular.dev/style-guide#style-05-16\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/no-output-on-prefix.md"
    },
    "@angular-eslint/no-output-rename": {
      "description": "Ensures that output bindings are not aliased\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/no-output-rename.md"
    },
    "@angular-eslint/no-outputs-metadata-property": {
      "description": "Disallows usage of the `outputs` metadata property. See more at https://angular.dev/style-guide#style-05-12\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/no-outputs-metadata-property.md"
    },
    "@angular-eslint/no-pipe-impure": {
      "description": "Disallows the declaration of impure pipes\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/no-pipe-impure.md"
    },
    "@angular-eslint/no-queries-metadata-property": {
      "description": "Disallows usage of the `queries` metadata property. See more at https://angular.dev/style-guide#style-05-12.\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/no-queries-metadata-property.md"
    },
    "@angular-eslint/pipe-prefix": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "prefixes": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "uniqueItems": true
                }
              }
            }
          ]
        }
      ],
      "description": "Enforce consistent prefix for pipes.\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/pipe-prefix.md"
    },
    "@angular-eslint/prefer-on-push-component-change-detection": {
      "description": "Ensures component's `changeDetection` is set to `ChangeDetectionStrategy.OnPush`\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/prefer-on-push-component-change-detection.md"
    },
    "@angular-eslint/prefer-standalone": {
      "description": "Ensures component, directive and pipe `standalone` property is set to `true` in the component decorator\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/prefer-standalone.md"
    },
    "@angular-eslint/prefer-standalone-component": {
      "description": "Ensures component `standalone` property is set to `true` in the component decorator\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/prefer-standalone-component.md"
    },
    "@angular-eslint/prefer-output-readonly": {
      "description": "Prefer to declare `@Output` as `readonly` since they are not supposed to be reassigned\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/prefer-output-readonly.md"
    },
    "@angular-eslint/relative-url-prefix": {
      "description": "The ./ and ../ prefix is standard syntax for relative URLs; don't depend on Angular's current ability to do without that prefix. See more at https://angular.dev/style-guide#style-05-04\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/relative-url-prefix.md"
    },
    "@angular-eslint/require-localize-metadata": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "requireDescription": {
                  "type": "boolean",
                  "default": false
                },
                "requireMeaning": {
                  "type": "boolean",
                  "default": false
                }
              }
            }
          ]
        }
      ],
      "description": "Ensures that $localize tagged messages contain helpful metadata to aid with translations.\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/require-localize-metadata.md"
    },
    "@angular-eslint/sort-lifecycle-methods": {
      "description": "Ensures that lifecycle methods are declared in order of execution\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/sort-lifecycle-methods.md"
    },
    "@angular-eslint/sort-ngmodule-metadata-arrays": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "locale": {
                  "type": "string",
                  "description": "A string with a BCP 47 language tag.",
                  "default": "en-US"
                }
              }
            }
          ]
        }
      ],
      "description": "Ensures ASC alphabetical order for `NgModule` metadata arrays for easy visual scanning\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/sort-ngmodule-metadata-arrays.md"
    },
    "@angular-eslint/use-component-selector": {
      "description": "Component selector must be declared\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/use-component-selector.md"
    },
    "@angular-eslint/use-component-view-encapsulation": {
      "description": "Disallows using `ViewEncapsulation.None`\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/use-component-view-encapsulation.md"
    },
    "@angular-eslint/use-injectable-provided-in": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "ignoreClassNamePattern": {
                  "type": "string"
                }
              }
            }
          ]
        }
      ],
      "description": "Using the `providedIn` property makes `Injectables` tree-shakable\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/use-injectable-provided-in.md"
    },
    "@angular-eslint/use-lifecycle-interface": {
      "description": "Ensures that classes implement lifecycle interfaces corresponding to the declared lifecycle methods. See more at https://angular.dev/style-guide#style-09-01\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/use-lifecycle-interface.md"
    },
    "@angular-eslint/use-pipe-transform-interface": {
      "description": "Ensures that `Pipes` implement `PipeTransform` interface\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/use-pipe-transform-interface.md"
    },
    "eslint-plugin-import/no-unresolved": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "commonjs": {
                  "type": "boolean"
                },
                "amd": {
                  "type": "boolean"
                },
                "esmodule": {
                  "type": "boolean"
                },
                "ignore": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "type": "string"
                  },
                  "uniqueItems": true
                },
                "caseSensitive": {
                  "type": "boolean",
                  "default": true
                },
                "caseSensitiveStrict": {
                  "type": "boolean",
                  "default": false
                }
              }
            }
          ]
        }
      ],
      "description": "Ensure imports point to a file/module that can be resolved.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-unresolved.md"
    },
    "eslint-plugin-import/named": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "commonjs": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Ensure named imports correspond to a named export in the remote file.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/named.md"
    },
    "eslint-plugin-import/default": {
      "description": "Ensure a default export is present, given a default import.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/default.md"
    },
    "eslint-plugin-import/namespace": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allowComputed": {
                  "description": "If `false`, will report computed (and thus, un-lintable) references to namespace members.",
                  "type": "boolean",
                  "default": false
                }
              }
            }
          ]
        }
      ],
      "description": "Ensure imported namespaces contain dereferenced properties as they are dereferenced.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/namespace.md"
    },
    "eslint-plugin-import/no-namespace": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "ignore": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "uniqueItems": true
                }
              }
            }
          ]
        }
      ],
      "description": "Forbid namespace (a.k.a. \"wildcard\" `*`) imports.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-namespace.md"
    },
    "eslint-plugin-import/export": {
      "description": "Forbid any invalid exports, i.e. re-export of the same name.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/export.md"
    },
    "eslint-plugin-import/no-mutable-exports": {
      "description": "Forbid the use of mutable exports with `var` or `let`.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-mutable-exports.md"
    },
    "eslint-plugin-import/extensions": {
      "description": "Ensure consistent use of file extension within the import path.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/extensions.md"
    },
    "eslint-plugin-import/no-restricted-paths": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "zones": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "type": "object",
                    "properties": {
                      "target": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "uniqueItems": true,
                            "minItems": 1
                          }
                        ]
                      },
                      "from": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "uniqueItems": true,
                            "minItems": 1
                          }
                        ]
                      },
                      "except": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "uniqueItems": true
                      },
                      "message": {
                        "type": "string"
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "basePath": {
                  "type": "string"
                }
              }
            }
          ]
        }
      ],
      "description": "Enforce which files can be imported in a given folder.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-restricted-paths.md"
    },
    "eslint-plugin-import/no-internal-modules": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "Forbid importing the submodules of other modules.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-internal-modules.md"
    },
    "eslint-plugin-import/group-exports": {
      "description": "Prefer named exports to be grouped together in a single export declaration\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/group-exports.md"
    },
    "eslint-plugin-import/no-relative-packages": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "commonjs": {
                  "type": "boolean"
                },
                "amd": {
                  "type": "boolean"
                },
                "esmodule": {
                  "type": "boolean"
                },
                "ignore": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "type": "string"
                  },
                  "uniqueItems": true
                }
              }
            }
          ]
        }
      ],
      "description": "Forbid importing packages through relative paths.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-relative-packages.md"
    },
    "eslint-plugin-import/no-relative-parent-imports": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "commonjs": {
                  "type": "boolean"
                },
                "amd": {
                  "type": "boolean"
                },
                "esmodule": {
                  "type": "boolean"
                },
                "ignore": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "type": "string"
                  },
                  "uniqueItems": true
                }
              }
            }
          ]
        }
      ],
      "description": "Forbid importing modules from parent directories.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-relative-parent-imports.md"
    },
    "eslint-plugin-import/consistent-type-specifier-style": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "Enforce or ban the use of inline type-only markers for named imports.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/consistent-type-specifier-style.md"
    },
    "eslint-plugin-import/no-self-import": {
      "description": "Forbid a module from importing itself.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-self-import.md"
    },
    "eslint-plugin-import/no-cycle": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "commonjs": {
                  "type": "boolean"
                },
                "amd": {
                  "type": "boolean"
                },
                "esmodule": {
                  "type": "boolean"
                },
                "ignore": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "type": "string"
                  },
                  "uniqueItems": true
                },
                "maxDepth": {
                  "anyOf": [
                    {
                      "description": "maximum dependency depth to traverse",
                      "type": "integer",
                      "minimum": 1
                    },
                    {
                      "enum": ["∞"],
                      "type": "string"
                    }
                  ]
                },
                "ignoreExternal": {
                  "description": "ignore external modules",
                  "type": "boolean",
                  "default": false
                },
                "allowUnsafeDynamicCyclicDependency": {
                  "description": "Allow cyclic dependency if there is at least one dynamic import in the chain",
                  "type": "boolean",
                  "default": false
                }
              }
            }
          ]
        }
      ],
      "description": "Forbid a module from importing a module with a dependency path back to itself.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-cycle.md"
    },
    "eslint-plugin-import/no-named-default": {
      "description": "Forbid named default exports.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-named-default.md"
    },
    "eslint-plugin-import/no-named-as-default": {
      "description": "Forbid use of exported name as identifier of default export.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-named-as-default.md"
    },
    "eslint-plugin-import/no-named-as-default-member": {
      "description": "Forbid use of exported name as property of default export.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-named-as-default-member.md"
    },
    "eslint-plugin-import/no-anonymous-default-export": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allowArray": {
                  "description": "If `false`, will report default export of an array",
                  "type": "boolean"
                },
                "allowArrowFunction": {
                  "description": "If `false`, will report default export of an arrow function",
                  "type": "boolean"
                },
                "allowCallExpression": {
                  "description": "If `false`, will report default export of a function call",
                  "type": "boolean"
                },
                "allowAnonymousClass": {
                  "description": "If `false`, will report default export of an anonymous class",
                  "type": "boolean"
                },
                "allowAnonymousFunction": {
                  "description": "If `false`, will report default export of an anonymous function",
                  "type": "boolean"
                },
                "allowLiteral": {
                  "description": "If `false`, will report default export of a literal",
                  "type": "boolean"
                },
                "allowObject": {
                  "description": "If `false`, will report default export of an object expression",
                  "type": "boolean"
                },
                "allowNew": {
                  "description": "If `false`, will report default export of a class instantiation",
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Forbid anonymous values as default exports.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-anonymous-default-export.md"
    },
    "eslint-plugin-import/no-unused-modules": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "src": {
                  "description": "files/paths to be analyzed (only for unused exports)",
                  "type": "array",
                  "uniqueItems": true,
                  "items": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "ignoreExports": {
                  "description": "files/paths for which unused exports will not be reported (e.g module entry points)",
                  "type": "array",
                  "uniqueItems": true,
                  "items": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "missingExports": {
                  "description": "report modules without any exports",
                  "type": "boolean"
                },
                "unusedExports": {
                  "description": "report exports without any usage",
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Forbid modules without exports, or exports without matching import in another module.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-unused-modules.md"
    },
    "eslint-plugin-import/no-commonjs": {
      "description": "Forbid CommonJS `require` calls and `module.exports` or `exports.*`.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-commonjs.md"
    },
    "eslint-plugin-import/no-amd": {
      "description": "Forbid AMD `require` and `define` calls.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-amd.md"
    },
    "eslint-plugin-import/no-duplicates": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "considerQueryString": {
                  "type": "boolean"
                },
                "prefer-inline": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Forbid repeated import of the same module in multiple places.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-duplicates.md"
    },
    "eslint-plugin-import/first": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "Ensure all imports appear before other statements.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/first.md"
    },
    "eslint-plugin-import/max-dependencies": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "max": {
                  "type": "number"
                },
                "ignoreTypeImports": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Enforce the maximum number of dependencies a module can have.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/max-dependencies.md"
    },
    "eslint-plugin-import/no-extraneous-dependencies": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "devDependencies": {
                  "oneOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "array",
                      "items": {}
                    }
                  ]
                },
                "optionalDependencies": {
                  "oneOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "array",
                      "items": {}
                    }
                  ]
                },
                "peerDependencies": {
                  "oneOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "array",
                      "items": {}
                    }
                  ]
                },
                "bundledDependencies": {
                  "oneOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "array",
                      "items": {}
                    }
                  ]
                },
                "packageDir": {
                  "oneOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "array",
                      "items": {}
                    }
                  ]
                },
                "includeInternal": {
                  "oneOf": [
                    {
                      "type": "boolean"
                    }
                  ]
                },
                "includeTypes": {
                  "oneOf": [
                    {
                      "type": "boolean"
                    }
                  ]
                }
              }
            }
          ]
        }
      ],
      "description": "Forbid the use of extraneous packages.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-extraneous-dependencies.md"
    },
    "eslint-plugin-import/no-absolute-path": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "commonjs": {
                  "type": "boolean"
                },
                "amd": {
                  "type": "boolean"
                },
                "esmodule": {
                  "type": "boolean"
                },
                "ignore": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "type": "string"
                  },
                  "uniqueItems": true
                }
              }
            }
          ]
        }
      ],
      "description": "Forbid import of modules using absolute paths.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-absolute-path.md"
    },
    "eslint-plugin-import/no-nodejs-modules": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allow": {
                  "type": "array",
                  "uniqueItems": true,
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          ]
        }
      ],
      "description": "Forbid Node.js builtin modules.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-nodejs-modules.md"
    },
    "eslint-plugin-import/no-webpack-loader-syntax": {
      "description": "Forbid webpack loader syntax in imports.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-webpack-loader-syntax.md"
    },
    "eslint-plugin-import/order": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "groups": {
                  "type": "array"
                },
                "pathGroupsExcludedImportTypes": {
                  "type": "array"
                },
                "distinctGroup": {
                  "type": "boolean",
                  "default": true
                },
                "pathGroups": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "pattern": {
                        "type": "string"
                      },
                      "patternOptions": {
                        "type": "object"
                      },
                      "group": {
                        "type": "string",
                        "enum": [
                          "builtin",
                          "external",
                          "internal",
                          "unknown",
                          "parent",
                          "sibling",
                          "index",
                          "object",
                          "type"
                        ]
                      },
                      "position": {
                        "type": "string",
                        "enum": ["after", "before"]
                      }
                    },
                    "additionalProperties": false,
                    "required": ["pattern", "group"]
                  }
                },
                "newlines-between": {
                  "enum": [
                    "ignore",
                    "always",
                    "always-and-inside-groups",
                    "never"
                  ]
                },
                "alphabetize": {
                  "type": "object",
                  "properties": {
                    "caseInsensitive": {
                      "type": "boolean",
                      "default": false
                    },
                    "order": {
                      "enum": ["ignore", "asc", "desc"],
                      "default": "ignore"
                    },
                    "orderImportKind": {
                      "enum": ["ignore", "asc", "desc"],
                      "default": "ignore"
                    }
                  },
                  "additionalProperties": false
                },
                "warnOnUnassignedImports": {
                  "type": "boolean",
                  "default": false
                }
              }
            }
          ]
        }
      ],
      "description": "Enforce a convention in module import order.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/order.md"
    },
    "eslint-plugin-import/newline-after-import": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "count": {
                  "type": "integer",
                  "minimum": 1
                },
                "exactCount": {
                  "type": "boolean"
                },
                "considerComments": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Enforce a newline after import statements.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/newline-after-import.md"
    },
    "eslint-plugin-import/prefer-default-export": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "target": {
                  "type": "string",
                  "enum": ["single", "any"],
                  "default": "single"
                }
              }
            }
          ]
        }
      ],
      "description": "Prefer a default export if module exports a single name or multiple names.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/prefer-default-export.md"
    },
    "eslint-plugin-import/no-default-export": {
      "description": "Forbid default exports.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-default-export.md"
    },
    "eslint-plugin-import/no-named-export": {
      "description": "Forbid named exports.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-named-export.md"
    },
    "eslint-plugin-import/no-dynamic-require": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "esmodule": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Forbid `require()` calls with expressions.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-dynamic-require.md"
    },
    "eslint-plugin-import/unambiguous": {
      "description": "Forbid potentially ambiguous parse goal (`script` vs. `module`).\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/unambiguous.md"
    },
    "eslint-plugin-import/no-unassigned-import": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "devDependencies": {
                  "oneOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "array",
                      "items": {}
                    }
                  ]
                },
                "optionalDependencies": {
                  "oneOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "array",
                      "items": {}
                    }
                  ]
                },
                "peerDependencies": {
                  "oneOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "array",
                      "items": {}
                    }
                  ]
                },
                "allow": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          ]
        }
      ],
      "description": "Forbid unassigned imports\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-unassigned-import.md"
    },
    "eslint-plugin-import/no-useless-path-segments": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "commonjs": {
                  "type": "boolean"
                },
                "noUselessIndex": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Forbid unnecessary path segments in import and require statements.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-useless-path-segments.md"
    },
    "eslint-plugin-import/dynamic-import-chunkname": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "importFunctions": {
                  "type": "array",
                  "uniqueItems": true,
                  "items": {
                    "type": "string"
                  }
                },
                "webpackChunknameFormat": {
                  "type": "string"
                }
              }
            }
          ]
        }
      ],
      "description": "Enforce a leading comment with the webpackChunkName for dynamic imports.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/dynamic-import-chunkname.md"
    },
    "eslint-plugin-import/no-import-module-exports": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "exceptions": {
                  "type": "array"
                }
              }
            }
          ]
        }
      ],
      "description": "Forbid import statements with CommonJS module.exports.\n"
    },
    "eslint-plugin-import/no-empty-named-blocks": {
      "description": "Forbid empty named import blocks.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-empty-named-blocks.md"
    },
    "eslint-plugin-import/exports-last": {
      "description": "Ensure all exports appear after other statements.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/exports-last.md"
    },
    "eslint-plugin-import/no-deprecated": {
      "description": "Forbid imported names marked with `@deprecated` documentation tag.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-deprecated.md"
    },
    "eslint-plugin-import/imports-first": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "Replaced by `import/first`.\nhttps://github.com/import-js/eslint-plugin-import/blob/7b25c1cb95ee18acc1531002fd343e1e6031f9ed/docs/rules/imports-first.md"
    },
    "eslint-plugin-unicorn/better-regex": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "sortCharacterClasses": {
                  "type": "boolean",
                  "default": true
                }
              }
            }
          ]
        }
      ],
      "description": "Improve regexes by making them shorter, consistent, and safer.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/better-regex.md"
    },
    "eslint-plugin-unicorn/catch-error-name": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "name": {
                  "type": "string"
                },
                "ignore": {
                  "type": "array",
                  "uniqueItems": true
                }
              }
            }
          ]
        }
      ],
      "description": "Enforce a specific parameter name in catch clauses.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/catch-error-name.md"
    },
    "eslint-plugin-unicorn/consistent-destructuring": {
      "description": "Use destructured variables over properties.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/consistent-destructuring.md"
    },
    "eslint-plugin-unicorn/consistent-empty-array-spread": {
      "description": "Prefer consistent types when spreading a ternary in an array literal.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/consistent-empty-array-spread.md"
    },
    "eslint-plugin-unicorn/consistent-function-scoping": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "checkArrowFunctions": {
                  "type": "boolean",
                  "default": true
                }
              }
            }
          ]
        }
      ],
      "description": "Move function definitions to the highest possible scope.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/consistent-function-scoping.md"
    },
    "eslint-plugin-unicorn/custom-error-definition": {
      "description": "Enforce correct `Error` subclassing.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/custom-error-definition.md"
    },
    "eslint-plugin-unicorn/empty-brace-spaces": {
      "description": "Enforce no spaces between braces.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/empty-brace-spaces.md"
    },
    "eslint-plugin-unicorn/error-message": {
      "description": "Enforce passing a `message` value when creating a built-in error.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/error-message.md"
    },
    "eslint-plugin-unicorn/escape-case": {
      "description": "Require escape sequences to use uppercase values.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/escape-case.md"
    },
    "eslint-plugin-unicorn/expiring-todo-comments": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "terms": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "ignore": {
                  "type": "array",
                  "uniqueItems": true
                },
                "ignoreDatesOnPullRequests": {
                  "type": "boolean",
                  "default": true
                },
                "allowWarningComments": {
                  "type": "boolean",
                  "default": false
                },
                "date": {
                  "type": "string",
                  "format": "date"
                }
              }
            }
          ]
        }
      ],
      "description": "Add expiration conditions to TODO comments.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/expiring-todo-comments.md"
    },
    "eslint-plugin-unicorn/explicit-length-check": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "non-zero": {
                  "enum": ["greater-than", "not-equal"],
                  "default": "greater-than"
                }
              }
            }
          ]
        }
      ],
      "description": "Enforce explicitly comparing the `length` or `size` property of a value.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/explicit-length-check.md"
    },
    "eslint-plugin-unicorn/filename-case": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "Enforce a case style for filenames.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/filename-case.md"
    },
    "eslint-plugin-unicorn/import-style": {
      "description": "Enforce specific import styles per module.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/import-style.md"
    },
    "eslint-plugin-unicorn/new-for-builtins": {
      "description": "Enforce the use of `new` for all builtins, except `String`, `Number`, `Boolean`, `Symbol` and `BigInt`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/new-for-builtins.md"
    },
    "eslint-plugin-unicorn/no-abusive-eslint-disable": {
      "description": "Enforce specifying rules to disable in `eslint-disable` comments.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-abusive-eslint-disable.md"
    },
    "eslint-plugin-unicorn/no-anonymous-default-export": {
      "description": "Disallow anonymous functions and classes as the default export.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-anonymous-default-export.md"
    },
    "eslint-plugin-unicorn/no-array-callback-reference": {
      "description": "Prevent passing a function reference directly to iterator methods.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-array-callback-reference.md"
    },
    "eslint-plugin-unicorn/no-array-for-each": {
      "description": "Prefer `for…of` over the `forEach` method.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-array-for-each.md"
    },
    "eslint-plugin-unicorn/no-array-method-this-argument": {
      "description": "Disallow using the `this` argument in array methods.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-array-method-this-argument.md"
    },
    "eslint-plugin-unicorn/no-array-push-push": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "ignore": {
                  "type": "array",
                  "uniqueItems": true
                }
              }
            }
          ]
        }
      ],
      "description": "Enforce combining multiple `Array#push()` into one call.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-array-push-push.md"
    },
    "eslint-plugin-unicorn/no-array-reduce": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allowSimpleOperations": {
                  "type": "boolean",
                  "default": true
                }
              }
            }
          ]
        }
      ],
      "description": "Disallow `Array#reduce()` and `Array#reduceRight()`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-array-reduce.md"
    },
    "eslint-plugin-unicorn/no-await-expression-member": {
      "description": "Disallow member access from await expression.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-await-expression-member.md"
    },
    "eslint-plugin-unicorn/no-await-in-promise-methods": {
      "description": "Disallow using `await` in `Promise` method parameters.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-await-in-promise-methods.md"
    },
    "eslint-plugin-unicorn/no-console-spaces": {
      "description": "Do not use leading/trailing space between `console.log` parameters.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-console-spaces.md"
    },
    "eslint-plugin-unicorn/no-document-cookie": {
      "description": "Do not use `document.cookie` directly.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-document-cookie.md"
    },
    "eslint-plugin-unicorn/no-empty-file": {
      "description": "Disallow empty files.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-empty-file.md"
    },
    "eslint-plugin-unicorn/no-for-loop": {
      "description": "Do not use a `for` loop that can be replaced with a `for-of` loop.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-for-loop.md"
    },
    "eslint-plugin-unicorn/no-hex-escape": {
      "description": "Enforce the use of Unicode escapes instead of hexadecimal escapes.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-hex-escape.md"
    },
    "eslint-plugin-unicorn/no-instanceof-array": {
      "description": "Require `Array.isArray()` instead of `instanceof Array`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-instanceof-array.md"
    },
    "eslint-plugin-unicorn/no-invalid-fetch-options": {
      "description": "Disallow invalid options in `fetch()` and `new Request()`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-invalid-fetch-options.md"
    },
    "eslint-plugin-unicorn/no-invalid-remove-event-listener": {
      "description": "Prevent calling `EventTarget#removeEventListener()` with the result of an expression.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-invalid-remove-event-listener.md"
    },
    "eslint-plugin-unicorn/no-keyword-prefix": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "disallowedPrefixes": {
                  "type": "array",
                  "items": [
                    {
                      "type": "string"
                    }
                  ],
                  "minItems": 1,
                  "uniqueItems": true,
                  "maxItems": 1
                },
                "checkProperties": {
                  "type": "boolean"
                },
                "onlyCamelCase": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Disallow identifiers starting with `new` or `class`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-keyword-prefix.md"
    },
    "eslint-plugin-unicorn/no-lonely-if": {
      "description": "Disallow `if` statements as the only statement in `if` blocks without `else`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-lonely-if.md"
    },
    "eslint-plugin-unicorn/no-magic-array-flat-depth": {
      "description": "Disallow a magic number as the `depth` argument in `Array#flat(…).`\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-magic-array-flat-depth.md"
    },
    "eslint-plugin-unicorn/no-negated-condition": {
      "description": "Disallow negated conditions.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-negated-condition.md"
    },
    "eslint-plugin-unicorn/no-negation-in-equality-check": {
      "description": "Disallow negated expression in equality check.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-negation-in-equality-check.md"
    },
    "eslint-plugin-unicorn/no-nested-ternary": {
      "description": "Disallow nested ternary expressions.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-nested-ternary.md"
    },
    "eslint-plugin-unicorn/no-new-array": {
      "description": "Disallow `new Array()`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-new-array.md"
    },
    "eslint-plugin-unicorn/no-new-buffer": {
      "description": "Enforce the use of `Buffer.from()` and `Buffer.alloc()` instead of the deprecated `new Buffer()`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-new-buffer.md"
    },
    "eslint-plugin-unicorn/no-null": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "checkStrictEquality": {
                  "type": "boolean",
                  "default": false
                }
              }
            }
          ]
        }
      ],
      "description": "Disallow the use of the `null` literal.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-null.md"
    },
    "eslint-plugin-unicorn/no-object-as-default-parameter": {
      "description": "Disallow the use of objects as default parameters.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-object-as-default-parameter.md"
    },
    "eslint-plugin-unicorn/no-process-exit": {
      "description": "Disallow `process.exit()`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-process-exit.md"
    },
    "eslint-plugin-unicorn/no-single-promise-in-promise-methods": {
      "description": "Disallow passing single-element arrays to `Promise` methods.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-single-promise-in-promise-methods.md"
    },
    "eslint-plugin-unicorn/no-static-only-class": {
      "description": "Disallow classes that only have static members.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-static-only-class.md"
    },
    "eslint-plugin-unicorn/no-thenable": {
      "description": "Disallow `then` property.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-thenable.md"
    },
    "eslint-plugin-unicorn/no-this-assignment": {
      "description": "Disallow assigning `this` to a variable.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-this-assignment.md"
    },
    "eslint-plugin-unicorn/no-typeof-undefined": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "checkGlobalVariables": {
                  "type": "boolean",
                  "default": false
                }
              }
            }
          ]
        }
      ],
      "description": "Disallow comparing `undefined` using `typeof`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-typeof-undefined.md"
    },
    "eslint-plugin-unicorn/no-unnecessary-await": {
      "description": "Disallow awaiting non-promise values.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-unnecessary-await.md"
    },
    "eslint-plugin-unicorn/no-unnecessary-polyfills": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "targets": {
                  "oneOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "array"
                    },
                    {
                      "type": "object"
                    }
                  ]
                }
              }
            }
          ]
        }
      ],
      "description": "Enforce the use of built-in methods instead of unnecessary polyfills.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-unnecessary-polyfills.md"
    },
    "eslint-plugin-unicorn/no-unreadable-array-destructuring": {
      "description": "Disallow unreadable array destructuring.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-unreadable-array-destructuring.md"
    },
    "eslint-plugin-unicorn/no-unreadable-iife": {
      "description": "Disallow unreadable IIFEs.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-unreadable-iife.md"
    },
    "eslint-plugin-unicorn/no-unused-properties": {
      "description": "Disallow unused object properties.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-unused-properties.md"
    },
    "eslint-plugin-unicorn/no-useless-fallback-in-spread": {
      "description": "Disallow useless fallback when spreading in object literals.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-useless-fallback-in-spread.md"
    },
    "eslint-plugin-unicorn/no-useless-length-check": {
      "description": "Disallow useless array length check.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-useless-length-check.md"
    },
    "eslint-plugin-unicorn/no-useless-promise-resolve-reject": {
      "description": "Disallow returning/yielding `Promise.resolve/reject()` in async functions or promise callbacks\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-useless-promise-resolve-reject.md"
    },
    "eslint-plugin-unicorn/no-useless-spread": {
      "description": "Disallow unnecessary spread.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-useless-spread.md"
    },
    "eslint-plugin-unicorn/no-useless-switch-case": {
      "description": "Disallow useless case in switch statements.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-useless-switch-case.md"
    },
    "eslint-plugin-unicorn/no-useless-undefined": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "checkArguments": {
                  "type": "boolean"
                },
                "checkArrowFunctionBody": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Disallow useless `undefined`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-useless-undefined.md"
    },
    "eslint-plugin-unicorn/no-zero-fractions": {
      "description": "Disallow number literals with zero fractions or dangling dots.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-zero-fractions.md"
    },
    "eslint-plugin-unicorn/number-literal-case": {
      "description": "Enforce proper case for numeric literals.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/number-literal-case.md"
    },
    "eslint-plugin-unicorn/numeric-separators-style": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "binary": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "onlyIfContainsSeparator": {
                      "type": "boolean"
                    },
                    "minimumDigits": {
                      "type": "integer",
                      "minimum": 0,
                      "default": 0
                    },
                    "groupLength": {
                      "type": "integer",
                      "minimum": 1,
                      "default": 4
                    }
                  }
                },
                "octal": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "onlyIfContainsSeparator": {
                      "type": "boolean"
                    },
                    "minimumDigits": {
                      "type": "integer",
                      "minimum": 0,
                      "default": 0
                    },
                    "groupLength": {
                      "type": "integer",
                      "minimum": 1,
                      "default": 4
                    }
                  }
                },
                "hexadecimal": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "onlyIfContainsSeparator": {
                      "type": "boolean"
                    },
                    "minimumDigits": {
                      "type": "integer",
                      "minimum": 0,
                      "default": 0
                    },
                    "groupLength": {
                      "type": "integer",
                      "minimum": 1,
                      "default": 2
                    }
                  }
                },
                "number": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "onlyIfContainsSeparator": {
                      "type": "boolean"
                    },
                    "minimumDigits": {
                      "type": "integer",
                      "minimum": 0,
                      "default": 5
                    },
                    "groupLength": {
                      "type": "integer",
                      "minimum": 1,
                      "default": 3
                    }
                  }
                },
                "onlyIfContainsSeparator": {
                  "type": "boolean",
                  "default": false
                }
              }
            }
          ]
        }
      ],
      "description": "Enforce the style of numeric separators by correctly grouping digits.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/numeric-separators-style.md"
    },
    "eslint-plugin-unicorn/prefer-add-event-listener": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "excludedPackages": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "uniqueItems": true
                }
              }
            }
          ]
        }
      ],
      "description": "Prefer `.addEventListener()` and `.removeEventListener()` over `on`-functions.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-add-event-listener.md"
    },
    "eslint-plugin-unicorn/prefer-array-find": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "checkFromLast": {
                  "type": "boolean",
                  "default": true
                }
              }
            }
          ]
        }
      ],
      "description": "Prefer `.find(…)` and `.findLast(…)` over the first or last element from `.filter(…)`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-array-find.md"
    },
    "eslint-plugin-unicorn/prefer-array-flat-map": {
      "description": "Prefer `.flatMap(…)` over `.map(…).flat()`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-array-flat-map.md"
    },
    "eslint-plugin-unicorn/prefer-array-flat": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "functions": {
                  "type": "array",
                  "uniqueItems": true
                }
              }
            }
          ]
        }
      ],
      "description": "Prefer `Array#flat()` over legacy techniques to flatten arrays.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-array-flat.md"
    },
    "eslint-plugin-unicorn/prefer-array-index-of": {
      "description": "Prefer `Array#{indexOf,lastIndexOf}()` over `Array#{findIndex,findLastIndex}()` when looking for the index of an item.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-array-index-of.md"
    },
    "eslint-plugin-unicorn/prefer-array-some": {
      "description": "Prefer `.some(…)` over `.filter(…).length` check and `.{find,findLast,findIndex,findLastIndex}(…)`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-array-some.md"
    },
    "eslint-plugin-unicorn/prefer-at": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "getLastElementFunctions": {
                  "type": "array",
                  "uniqueItems": true
                },
                "checkAllIndexAccess": {
                  "type": "boolean",
                  "default": false
                }
              }
            }
          ]
        }
      ],
      "description": "Prefer `.at()` method for index access and `String#charAt()`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-at.md"
    },
    "eslint-plugin-unicorn/prefer-blob-reading-methods": {
      "description": "Prefer `Blob#arrayBuffer()` over `FileReader#readAsArrayBuffer(…)` and `Blob#text()` over `FileReader#readAsText(…)`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-blob-reading-methods.md"
    },
    "eslint-plugin-unicorn/prefer-code-point": {
      "description": "Prefer `String#codePointAt(…)` over `String#charCodeAt(…)` and `String.fromCodePoint(…)` over `String.fromCharCode(…)`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-code-point.md"
    },
    "eslint-plugin-unicorn/prefer-date-now": {
      "description": "Prefer `Date.now()` to get the number of milliseconds since the Unix Epoch.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-date-now.md"
    },
    "eslint-plugin-unicorn/prefer-default-parameters": {
      "description": "Prefer default parameters over reassignment.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-default-parameters.md"
    },
    "eslint-plugin-unicorn/prefer-dom-node-append": {
      "description": "Prefer `Node#append()` over `Node#appendChild()`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-dom-node-append.md"
    },
    "eslint-plugin-unicorn/prefer-dom-node-dataset": {
      "description": "Prefer using `.dataset` on DOM elements over calling attribute methods.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-dom-node-dataset.md"
    },
    "eslint-plugin-unicorn/prefer-dom-node-remove": {
      "description": "Prefer `childNode.remove()` over `parentNode.removeChild(childNode)`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-dom-node-remove.md"
    },
    "eslint-plugin-unicorn/prefer-dom-node-text-content": {
      "description": "Prefer `.textContent` over `.innerText`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-dom-node-text-content.md"
    },
    "eslint-plugin-unicorn/prefer-event-target": {
      "description": "Prefer `EventTarget` over `EventEmitter`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-event-target.md"
    },
    "eslint-plugin-unicorn/prefer-export-from": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "ignoreUsedVariables": {
                  "type": "boolean",
                  "default": false
                }
              }
            }
          ]
        }
      ],
      "description": "Prefer `export…from` when re-exporting.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-export-from.md"
    },
    "eslint-plugin-unicorn/prefer-includes": {
      "description": "Prefer `.includes()` over `.indexOf()`, `.lastIndexOf()`, and `Array#some()` when checking for existence or non-existence.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-includes.md"
    },
    "eslint-plugin-unicorn/prefer-json-parse-buffer": {
      "description": "Prefer reading a JSON file as a buffer.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-json-parse-buffer.md"
    },
    "eslint-plugin-unicorn/prefer-keyboard-event-key": {
      "description": "Prefer `KeyboardEvent#key` over `KeyboardEvent#keyCode`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-keyboard-event-key.md"
    },
    "eslint-plugin-unicorn/prefer-logical-operator-over-ternary": {
      "description": "Prefer using a logical operator over a ternary.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-logical-operator-over-ternary.md"
    },
    "eslint-plugin-unicorn/prefer-math-trunc": {
      "description": "Enforce the use of `Math.trunc` instead of bitwise operators.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-math-trunc.md"
    },
    "eslint-plugin-unicorn/prefer-modern-dom-apis": {
      "description": "Prefer `.before()` over `.insertBefore()`, `.replaceWith()` over `.replaceChild()`, prefer one of `.before()`, `.after()`, `.append()` or `.prepend()` over `insertAdjacentText()` and `insertAdjacentElement()`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-modern-dom-apis.md"
    },
    "eslint-plugin-unicorn/prefer-modern-math-apis": {
      "description": "Prefer modern `Math` APIs over legacy patterns.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-modern-math-apis.md"
    },
    "eslint-plugin-unicorn/prefer-module": {
      "description": "Prefer JavaScript modules (ESM) over CommonJS.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-module.md"
    },
    "eslint-plugin-unicorn/prefer-native-coercion-functions": {
      "description": "Prefer using `String`, `Number`, `BigInt`, `Boolean`, and `Symbol` directly.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-native-coercion-functions.md"
    },
    "eslint-plugin-unicorn/prefer-negative-index": {
      "description": "Prefer negative index over `.length - index` when possible.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-negative-index.md"
    },
    "eslint-plugin-unicorn/prefer-node-protocol": {
      "description": "Prefer using the `node:` protocol when importing Node.js builtin modules.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-node-protocol.md"
    },
    "eslint-plugin-unicorn/prefer-number-properties": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "checkInfinity": {
                  "type": "boolean",
                  "default": false
                },
                "checkNaN": {
                  "type": "boolean",
                  "default": true
                }
              }
            }
          ]
        }
      ],
      "description": "Prefer `Number` static properties over global ones.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-number-properties.md"
    },
    "eslint-plugin-unicorn/prefer-object-from-entries": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "functions": {
                  "type": "array",
                  "uniqueItems": true
                }
              }
            }
          ]
        }
      ],
      "description": "Prefer using `Object.fromEntries(…)` to transform a list of key-value pairs into an object.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-object-from-entries.md"
    },
    "eslint-plugin-unicorn/prefer-optional-catch-binding": {
      "description": "Prefer omitting the `catch` binding parameter.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-optional-catch-binding.md"
    },
    "eslint-plugin-unicorn/prefer-prototype-methods": {
      "description": "Prefer borrowing methods from the prototype instead of the instance.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-prototype-methods.md"
    },
    "eslint-plugin-unicorn/prefer-query-selector": {
      "description": "Prefer `.querySelector()` over `.getElementById()`, `.querySelectorAll()` over `.getElementsByClassName()` and `.getElementsByTagName()`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-query-selector.md"
    },
    "eslint-plugin-unicorn/prefer-reflect-apply": {
      "description": "Prefer `Reflect.apply()` over `Function#apply()`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-reflect-apply.md"
    },
    "eslint-plugin-unicorn/prefer-regexp-test": {
      "description": "Prefer `RegExp#test()` over `String#match()` and `RegExp#exec()`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-regexp-test.md"
    },
    "eslint-plugin-unicorn/prefer-set-has": {
      "description": "Prefer `Set#has()` over `Array#includes()` when checking for existence or non-existence.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-set-has.md"
    },
    "eslint-plugin-unicorn/prefer-set-size": {
      "description": "Prefer using `Set#size` instead of `Array#length`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-set-size.md"
    },
    "eslint-plugin-unicorn/prefer-spread": {
      "description": "Prefer the spread operator over `Array.from(…)`, `Array#concat(…)`, `Array#{slice,toSpliced}()` and `String#split('')`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-spread.md"
    },
    "eslint-plugin-unicorn/prefer-string-raw": {
      "description": "Prefer using the `String.raw` tag to avoid escaping `\\`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-string-raw.md"
    },
    "eslint-plugin-unicorn/prefer-string-replace-all": {
      "description": "Prefer `String#replaceAll()` over regex searches with the global flag.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-string-replace-all.md"
    },
    "eslint-plugin-unicorn/prefer-string-slice": {
      "description": "Prefer `String#slice()` over `String#substr()` and `String#substring()`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-string-slice.md"
    },
    "eslint-plugin-unicorn/prefer-string-starts-ends-with": {
      "description": "Prefer `String#startsWith()` & `String#endsWith()` over `RegExp#test()`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-string-starts-ends-with.md"
    },
    "eslint-plugin-unicorn/prefer-string-trim-start-end": {
      "description": "Prefer `String#trimStart()` / `String#trimEnd()` over `String#trimLeft()` / `String#trimRight()`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-string-trim-start-end.md"
    },
    "eslint-plugin-unicorn/prefer-structured-clone": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "functions": {
                  "type": "array",
                  "uniqueItems": true
                }
              }
            }
          ]
        }
      ],
      "description": "Prefer using `structuredClone` to create a deep clone.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-structured-clone.md"
    },
    "eslint-plugin-unicorn/prefer-switch": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "minimumCases": {
                  "type": "integer",
                  "minimum": 2,
                  "default": 3
                },
                "emptyDefaultCase": {
                  "enum": [
                    "no-default-comment",
                    "do-nothing-comment",
                    "no-default-case"
                  ],
                  "default": "no-default-comment"
                }
              }
            }
          ]
        }
      ],
      "description": "Prefer `switch` over multiple `else-if`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-switch.md"
    },
    "eslint-plugin-unicorn/prefer-ternary": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "Prefer ternary expressions over simple `if-else` statements.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-ternary.md"
    },
    "eslint-plugin-unicorn/prefer-top-level-await": {
      "description": "Prefer top-level await over top-level promises and async function calls.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-top-level-await.md"
    },
    "eslint-plugin-unicorn/prefer-type-error": {
      "description": "Enforce throwing `TypeError` in type checking conditions.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-type-error.md"
    },
    "eslint-plugin-unicorn/prevent-abbreviations": {
      "description": "Prevent abbreviations.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prevent-abbreviations.md"
    },
    "eslint-plugin-unicorn/relative-url-style": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "Enforce consistent relative URL style.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/relative-url-style.md"
    },
    "eslint-plugin-unicorn/require-array-join-separator": {
      "description": "Enforce using the separator argument with `Array#join()`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/require-array-join-separator.md"
    },
    "eslint-plugin-unicorn/require-number-to-fixed-digits-argument": {
      "description": "Enforce using the digits argument with `Number#toFixed()`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/require-number-to-fixed-digits-argument.md"
    },
    "eslint-plugin-unicorn/require-post-message-target-origin": {
      "description": "Enforce using the `targetOrigin` argument with `window.postMessage()`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/require-post-message-target-origin.md"
    },
    "eslint-plugin-unicorn/string-content": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "patterns": {
                  "type": "object",
                  "additionalProperties": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "object",
                        "required": ["suggest"],
                        "properties": {
                          "suggest": {
                            "type": "string"
                          },
                          "fix": {
                            "type": "boolean"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "additionalProperties": false
                      }
                    ]
                  }
                }
              }
            }
          ]
        }
      ],
      "description": "Enforce better string content.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/string-content.md"
    },
    "eslint-plugin-unicorn/switch-case-braces": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "Enforce consistent brace style for `case` clauses.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/switch-case-braces.md"
    },
    "eslint-plugin-unicorn/template-indent": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "indent": {
                  "oneOf": [
                    {
                      "type": "string",
                      "pattern": "^\\s+$"
                    },
                    {
                      "type": "integer",
                      "minimum": 1
                    }
                  ]
                },
                "tags": {
                  "type": "array",
                  "uniqueItems": true,
                  "items": {
                    "type": "string"
                  }
                },
                "functions": {
                  "type": "array",
                  "uniqueItems": true,
                  "items": {
                    "type": "string"
                  }
                },
                "selectors": {
                  "type": "array",
                  "uniqueItems": true,
                  "items": {
                    "type": "string"
                  }
                },
                "comments": {
                  "type": "array",
                  "uniqueItems": true,
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          ]
        }
      ],
      "description": "Fix whitespace-insensitive template indentation.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/template-indent.md"
    },
    "eslint-plugin-unicorn/text-encoding-identifier-case": {
      "description": "Enforce consistent case for text encoding identifiers.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/text-encoding-identifier-case.md"
    },
    "eslint-plugin-unicorn/throw-new-error": {
      "description": "Require `new` when creating an error.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/throw-new-error.md"
    },
    "eslint-plugin-unicorn/import-index": {
      "description": "\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/deprecated-rules.md#import-index"
    },
    "eslint-plugin-unicorn/no-array-instanceof": {
      "description": "\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/deprecated-rules.md#no-array-instanceof"
    },
    "eslint-plugin-unicorn/no-fn-reference-in-iterator": {
      "description": "\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/deprecated-rules.md#no-fn-reference-in-iterator"
    },
    "eslint-plugin-unicorn/no-reduce": {
      "description": "\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/deprecated-rules.md#no-reduce"
    },
    "eslint-plugin-unicorn/no-unsafe-regex": {
      "description": "\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/deprecated-rules.md#no-unsafe-regex"
    },
    "eslint-plugin-unicorn/prefer-dataset": {
      "description": "\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/deprecated-rules.md#prefer-dataset"
    },
    "eslint-plugin-unicorn/prefer-event-key": {
      "description": "\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/deprecated-rules.md#prefer-event-key"
    },
    "eslint-plugin-unicorn/prefer-exponentiation-operator": {
      "description": "\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/deprecated-rules.md#prefer-exponentiation-operator"
    },
    "eslint-plugin-unicorn/prefer-flat-map": {
      "description": "\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/deprecated-rules.md#prefer-flat-map"
    },
    "eslint-plugin-unicorn/prefer-node-append": {
      "description": "\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/deprecated-rules.md#prefer-node-append"
    },
    "eslint-plugin-unicorn/prefer-node-remove": {
      "description": "\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/deprecated-rules.md#prefer-node-remove"
    },
    "eslint-plugin-unicorn/prefer-object-has-own": {
      "description": "\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/deprecated-rules.md#prefer-object-has-own"
    },
    "eslint-plugin-unicorn/prefer-replace-all": {
      "description": "\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/deprecated-rules.md#prefer-replace-all"
    },
    "eslint-plugin-unicorn/prefer-starts-ends-with": {
      "description": "\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/deprecated-rules.md#prefer-starts-ends-with"
    },
    "eslint-plugin-unicorn/prefer-text-content": {
      "description": "\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/deprecated-rules.md#prefer-text-content"
    },
    "eslint-plugin-unicorn/prefer-trim-start-end": {
      "description": "\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/deprecated-rules.md#prefer-trim-start-end"
    },
    "eslint-plugin-unicorn/regex-shorthand": {
      "description": "\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/deprecated-rules.md#regex-shorthand"
    },
    "eslint-plugin-vue/array-bracket-newline": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "Enforce linebreaks after opening and before closing array brackets in `<template>`\nhttps://eslint.vuejs.org/rules/array-bracket-newline.html"
    },
    "eslint-plugin-vue/array-bracket-spacing": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "Enforce consistent spacing inside array brackets in `<template>`\nhttps://eslint.vuejs.org/rules/array-bracket-spacing.html"
    },
    "eslint-plugin-vue/array-element-newline": {
      "description": "Enforce line breaks after each array element in `<template>`\nhttps://eslint.vuejs.org/rules/array-element-newline.html"
    },
    "eslint-plugin-vue/arrow-spacing": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "before": {
                  "type": "boolean",
                  "default": true
                },
                "after": {
                  "type": "boolean",
                  "default": true
                }
              }
            }
          ]
        }
      ],
      "description": "Enforce consistent spacing before and after the arrow in arrow functions in `<template>`\nhttps://eslint.vuejs.org/rules/arrow-spacing.html"
    },
    "eslint-plugin-vue/attribute-hyphenation": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "enforce attribute naming style on custom components in template\nhttps://eslint.vuejs.org/rules/attribute-hyphenation.html"
    },
    "eslint-plugin-vue/attributes-order": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "order": {
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "enum": [
                          "DEFINITION",
                          "LIST_RENDERING",
                          "CONDITIONALS",
                          "RENDER_MODIFIERS",
                          "GLOBAL",
                          "UNIQUE",
                          "SLOT",
                          "TWO_WAY_BINDING",
                          "OTHER_DIRECTIVES",
                          "OTHER_ATTR",
                          "ATTR_STATIC",
                          "ATTR_DYNAMIC",
                          "ATTR_SHORTHAND_BOOL",
                          "EVENTS",
                          "CONTENT"
                        ]
                      },
                      {
                        "type": "array",
                        "items": {
                          "enum": [
                            "DEFINITION",
                            "LIST_RENDERING",
                            "CONDITIONALS",
                            "RENDER_MODIFIERS",
                            "GLOBAL",
                            "UNIQUE",
                            "SLOT",
                            "TWO_WAY_BINDING",
                            "OTHER_DIRECTIVES",
                            "OTHER_ATTR",
                            "ATTR_STATIC",
                            "ATTR_DYNAMIC",
                            "ATTR_SHORTHAND_BOOL",
                            "EVENTS",
                            "CONTENT"
                          ]
                        }
                      }
                    ]
                  },
                  "uniqueItems": true
                },
                "alphabetical": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "enforce order of attributes\nhttps://eslint.vuejs.org/rules/attributes-order.html"
    },
    "eslint-plugin-vue/block-lang": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "disallow use other than available `lang`\nhttps://eslint.vuejs.org/rules/block-lang.html"
    },
    "eslint-plugin-vue/block-order": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "order": {
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "uniqueItems": true
                      }
                    ]
                  },
                  "uniqueItems": true
                }
              }
            }
          ]
        }
      ],
      "description": "enforce order of component top-level elements\nhttps://eslint.vuejs.org/rules/block-order.html"
    },
    "eslint-plugin-vue/block-spacing": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "Disallow or enforce spaces inside of blocks after opening block and before closing block in `<template>`\nhttps://eslint.vuejs.org/rules/block-spacing.html"
    },
    "eslint-plugin-vue/block-tag-newline": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "singleline": {
                  "enum": ["always", "never", "consistent", "ignore"]
                },
                "multiline": {
                  "enum": ["always", "never", "consistent", "ignore"]
                },
                "maxEmptyLines": {
                  "type": "number",
                  "minimum": 0
                },
                "blocks": {
                  "type": "object",
                  "patternProperties": {
                    "^(?:\\S+)$": {
                      "type": "object",
                      "properties": {
                        "singleline": {
                          "enum": ["always", "never", "consistent", "ignore"]
                        },
                        "multiline": {
                          "enum": ["always", "never", "consistent", "ignore"]
                        },
                        "maxEmptyLines": {
                          "type": "number",
                          "minimum": 0
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "additionalProperties": false
                }
              }
            }
          ]
        }
      ],
      "description": "enforce line breaks after opening and before closing block-level tags\nhttps://eslint.vuejs.org/rules/block-tag-newline.html"
    },
    "eslint-plugin-vue/brace-style": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "Enforce consistent brace style for blocks in `<template>`\nhttps://eslint.vuejs.org/rules/brace-style.html"
    },
    "eslint-plugin-vue/camelcase": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "ignoreDestructuring": {
                  "type": "boolean",
                  "default": false
                },
                "ignoreImports": {
                  "type": "boolean",
                  "default": false
                },
                "ignoreGlobals": {
                  "type": "boolean",
                  "default": false
                },
                "properties": {
                  "enum": ["always", "never"]
                },
                "allow": {
                  "type": "array",
                  "items": [
                    {
                      "type": "string"
                    }
                  ],
                  "minItems": 0,
                  "uniqueItems": true
                }
              }
            }
          ]
        }
      ],
      "description": "Enforce camelcase naming convention in `<template>`\nhttps://eslint.vuejs.org/rules/camelcase.html"
    },
    "eslint-plugin-vue/comma-dangle": {
      "description": "Require or disallow trailing commas in `<template>`\nhttps://eslint.vuejs.org/rules/comma-dangle.html"
    },
    "eslint-plugin-vue/comma-spacing": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "before": {
                  "type": "boolean",
                  "default": false
                },
                "after": {
                  "type": "boolean",
                  "default": true
                }
              }
            }
          ]
        }
      ],
      "description": "Enforce consistent spacing before and after commas in `<template>`\nhttps://eslint.vuejs.org/rules/comma-spacing.html"
    },
    "eslint-plugin-vue/comma-style": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "Enforce consistent comma style in `<template>`\nhttps://eslint.vuejs.org/rules/comma-style.html"
    },
    "eslint-plugin-vue/comment-directive": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "reportUnusedDisableDirectives": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "support comment-directives in `<template>`\nhttps://eslint.vuejs.org/rules/comment-directive.html"
    },
    "eslint-plugin-vue/component-api-style": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "enforce component API style\nhttps://eslint.vuejs.org/rules/component-api-style.html"
    },
    "eslint-plugin-vue/component-definition-name-casing": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "enforce specific casing for component definition name\nhttps://eslint.vuejs.org/rules/component-definition-name-casing.html"
    },
    "eslint-plugin-vue/component-name-in-template-casing": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "enforce specific casing for the component naming style in template\nhttps://eslint.vuejs.org/rules/component-name-in-template-casing.html"
    },
    "eslint-plugin-vue/component-options-name-casing": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "enforce the casing of component name in `components` options\nhttps://eslint.vuejs.org/rules/component-options-name-casing.html"
    },
    "eslint-plugin-vue/component-tags-order": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "order": {
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "uniqueItems": true
                      }
                    ]
                  },
                  "uniqueItems": true
                }
              }
            }
          ]
        }
      ],
      "description": "enforce order of component top-level elements\nhttps://eslint.vuejs.org/rules/component-tags-order.html"
    },
    "eslint-plugin-vue/custom-event-name-casing": {
      "description": "enforce specific casing for custom event name\nhttps://eslint.vuejs.org/rules/custom-event-name-casing.html"
    },
    "eslint-plugin-vue/define-emits-declaration": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "enforce declaration style of `defineEmits`\nhttps://eslint.vuejs.org/rules/define-emits-declaration.html"
    },
    "eslint-plugin-vue/define-macros-order": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "order": {
                  "type": "array",
                  "items": {
                    "enum": [
                      "defineEmits",
                      "defineProps",
                      "defineOptions",
                      "defineSlots",
                      "defineModel"
                    ]
                  },
                  "uniqueItems": true
                },
                "defineExposeLast": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "enforce order of `defineEmits` and `defineProps` compiler macros\nhttps://eslint.vuejs.org/rules/define-macros-order.html"
    },
    "eslint-plugin-vue/define-props-declaration": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "enforce declaration style of `defineProps`\nhttps://eslint.vuejs.org/rules/define-props-declaration.html"
    },
    "eslint-plugin-vue/dot-location": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "Enforce consistent newlines before and after dots in `<template>`\nhttps://eslint.vuejs.org/rules/dot-location.html"
    },
    "eslint-plugin-vue/dot-notation": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allowKeywords": {
                  "type": "boolean",
                  "default": true
                },
                "allowPattern": {
                  "type": "string",
                  "default": ""
                }
              }
            }
          ]
        }
      ],
      "description": "Enforce dot notation whenever possible in `<template>`\nhttps://eslint.vuejs.org/rules/dot-notation.html"
    },
    "eslint-plugin-vue/enforce-style-attribute": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allow": {
                  "type": "array",
                  "minItems": 1,
                  "uniqueItems": true,
                  "items": {
                    "type": "string",
                    "enum": ["plain", "scoped", "module"]
                  }
                }
              }
            }
          ]
        }
      ],
      "description": "enforce or forbid the use of the `scoped` and `module` attributes in SFC top level style tags\nhttps://eslint.vuejs.org/rules/enforce-style-attribute.html"
    },
    "eslint-plugin-vue/eqeqeq": {
      "description": "Require the use of `===` and `!==` in `<template>`\nhttps://eslint.vuejs.org/rules/eqeqeq.html"
    },
    "eslint-plugin-vue/first-attribute-linebreak": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "multiline": {
                  "enum": ["below", "beside", "ignore"]
                },
                "singleline": {
                  "enum": ["below", "beside", "ignore"]
                }
              }
            }
          ]
        }
      ],
      "description": "enforce the location of first attribute\nhttps://eslint.vuejs.org/rules/first-attribute-linebreak.html"
    },
    "eslint-plugin-vue/func-call-spacing": {
      "description": "Require or disallow spacing between function identifiers and their invocations in `<template>`\nhttps://eslint.vuejs.org/rules/func-call-spacing.html"
    },
    "eslint-plugin-vue/html-button-has-type": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "button": {
                  "default": true,
                  "type": "boolean"
                },
                "submit": {
                  "default": true,
                  "type": "boolean"
                },
                "reset": {
                  "default": true,
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "disallow usage of button without an explicit type attribute\nhttps://eslint.vuejs.org/rules/html-button-has-type.html"
    },
    "eslint-plugin-vue/html-closing-bracket-newline": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "singleline": {
                  "enum": ["always", "never"]
                },
                "multiline": {
                  "enum": ["always", "never"]
                },
                "selfClosingTag": {
                  "type": "object",
                  "properties": {
                    "singleline": {
                      "enum": ["always", "never"]
                    },
                    "multiline": {
                      "enum": ["always", "never"]
                    }
                  },
                  "additionalProperties": false,
                  "minProperties": 1
                }
              }
            }
          ]
        }
      ],
      "description": "require or disallow a line break before tag's closing brackets\nhttps://eslint.vuejs.org/rules/html-closing-bracket-newline.html"
    },
    "eslint-plugin-vue/html-closing-bracket-spacing": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "startTag": {
                  "enum": ["always", "never"]
                },
                "endTag": {
                  "enum": ["always", "never"]
                },
                "selfClosingTag": {
                  "enum": ["always", "never"]
                }
              }
            }
          ]
        }
      ],
      "description": "require or disallow a space before tag's closing brackets\nhttps://eslint.vuejs.org/rules/html-closing-bracket-spacing.html"
    },
    "eslint-plugin-vue/html-comment-content-newline": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "enforce unified line brake in HTML comments\nhttps://eslint.vuejs.org/rules/html-comment-content-newline.html"
    },
    "eslint-plugin-vue/html-comment-content-spacing": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "enforce unified spacing in HTML comments\nhttps://eslint.vuejs.org/rules/html-comment-content-spacing.html"
    },
    "eslint-plugin-vue/html-comment-indent": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "enforce consistent indentation in HTML comments\nhttps://eslint.vuejs.org/rules/html-comment-indent.html"
    },
    "eslint-plugin-vue/html-end-tags": {
      "description": "enforce end tag style\nhttps://eslint.vuejs.org/rules/html-end-tags.html"
    },
    "eslint-plugin-vue/html-indent": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "enforce consistent indentation in `<template>`\nhttps://eslint.vuejs.org/rules/html-indent.html"
    },
    "eslint-plugin-vue/html-quotes": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "enforce quotes style of HTML attributes\nhttps://eslint.vuejs.org/rules/html-quotes.html"
    },
    "eslint-plugin-vue/html-self-closing": {
      "description": "enforce self-closing style\nhttps://eslint.vuejs.org/rules/html-self-closing.html"
    },
    "eslint-plugin-vue/jsx-uses-vars": {
      "description": "prevent variables used in JSX to be marked as unused\nhttps://eslint.vuejs.org/rules/jsx-uses-vars.html"
    },
    "eslint-plugin-vue/key-spacing": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "Enforce consistent spacing between keys and values in object literal properties in `<template>`\nhttps://eslint.vuejs.org/rules/key-spacing.html"
    },
    "eslint-plugin-vue/keyword-spacing": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "before": {
                  "type": "boolean",
                  "default": true
                },
                "after": {
                  "type": "boolean",
                  "default": true
                },
                "overrides": {
                  "type": "object",
                  "properties": {
                    "abstract": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "as": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "async": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "await": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "boolean": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "break": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "byte": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "case": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "catch": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "char": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "class": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "const": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "continue": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "debugger": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "default": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "delete": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "do": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "double": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "else": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "enum": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "export": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "extends": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "false": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "final": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "finally": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "float": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "for": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "from": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "function": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "get": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "goto": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "if": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "implements": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "import": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "in": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "instanceof": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "int": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "interface": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "let": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "long": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "native": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "new": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "null": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "of": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "package": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "private": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "protected": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "public": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "return": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "set": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "short": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "static": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "super": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "switch": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "synchronized": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "this": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "throw": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "throws": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "transient": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "true": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "try": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "typeof": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "var": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "void": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "volatile": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "while": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "with": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "yield": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "additionalProperties": false
                }
              }
            }
          ]
        }
      ],
      "description": "Enforce consistent spacing before and after keywords in `<template>`\nhttps://eslint.vuejs.org/rules/keyword-spacing.html"
    },
    "eslint-plugin-vue/match-component-file-name": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "extensions": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "uniqueItems": true
                },
                "shouldMatchCase": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "require component name property to match its file name\nhttps://eslint.vuejs.org/rules/match-component-file-name.html"
    },
    "eslint-plugin-vue/match-component-import-name": {
      "description": "require the registered component name to match the imported component name\nhttps://eslint.vuejs.org/rules/match-component-import-name.html"
    },
    "eslint-plugin-vue/max-attributes-per-line": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "singleline": {
                  "anyOf": [
                    {
                      "type": "number",
                      "minimum": 1
                    },
                    {
                      "type": "object",
                      "properties": {
                        "max": {
                          "type": "number",
                          "minimum": 1
                        }
                      },
                      "additionalProperties": false
                    }
                  ]
                },
                "multiline": {
                  "anyOf": [
                    {
                      "type": "number",
                      "minimum": 1
                    },
                    {
                      "type": "object",
                      "properties": {
                        "max": {
                          "type": "number",
                          "minimum": 1
                        }
                      },
                      "additionalProperties": false
                    }
                  ]
                }
              }
            }
          ]
        }
      ],
      "description": "enforce the maximum number of attributes per line\nhttps://eslint.vuejs.org/rules/max-attributes-per-line.html"
    },
    "eslint-plugin-vue/max-len": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "enforce a maximum line length in `.vue` files\nhttps://eslint.vuejs.org/rules/max-len.html"
    },
    "eslint-plugin-vue/max-lines-per-block": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "style": {
                  "type": "integer",
                  "minimum": 1
                },
                "template": {
                  "type": "integer",
                  "minimum": 1
                },
                "script": {
                  "type": "integer",
                  "minimum": 1
                },
                "skipBlankLines": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "enforce maximum number of lines in Vue SFC blocks\nhttps://eslint.vuejs.org/rules/max-lines-per-block.html"
    },
    "eslint-plugin-vue/multi-word-component-names": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "ignores": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "uniqueItems": true
                }
              }
            }
          ]
        }
      ],
      "description": "require component names to be always multi-word\nhttps://eslint.vuejs.org/rules/multi-word-component-names.html"
    },
    "eslint-plugin-vue/multiline-html-element-content-newline": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "ignoreWhenEmpty": {
                  "type": "boolean"
                },
                "ignores": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "uniqueItems": true
                },
                "allowEmptyLines": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "require a line break before and after the contents of a multiline element\nhttps://eslint.vuejs.org/rules/multiline-html-element-content-newline.html"
    },
    "eslint-plugin-vue/multiline-ternary": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "Enforce newlines between operands of ternary expressions in `<template>`\nhttps://eslint.vuejs.org/rules/multiline-ternary.html"
    },
    "eslint-plugin-vue/mustache-interpolation-spacing": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "enforce unified spacing in mustache interpolations\nhttps://eslint.vuejs.org/rules/mustache-interpolation-spacing.html"
    },
    "eslint-plugin-vue/new-line-between-multi-line-property": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "minLineOfMultilineProperty": {
                  "type": "number",
                  "minimum": 2
                }
              }
            }
          ]
        }
      ],
      "description": "enforce new lines between multi-line properties in Vue components\nhttps://eslint.vuejs.org/rules/new-line-between-multi-line-property.html"
    },
    "eslint-plugin-vue/next-tick-style": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "enforce Promise or callback style in `nextTick`\nhttps://eslint.vuejs.org/rules/next-tick-style.html"
    },
    "eslint-plugin-vue/no-arrow-functions-in-watch": {
      "description": "disallow using arrow functions to define watcher\nhttps://eslint.vuejs.org/rules/no-arrow-functions-in-watch.html"
    },
    "eslint-plugin-vue/no-async-in-computed-properties": {
      "description": "disallow asynchronous actions in computed properties\nhttps://eslint.vuejs.org/rules/no-async-in-computed-properties.html"
    },
    "eslint-plugin-vue/no-bare-strings-in-template": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allowlist": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "uniqueItems": true
                },
                "attributes": {
                  "type": "object",
                  "patternProperties": {
                    "^(?:\\S+|/.*/[a-z]*)$": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "uniqueItems": true
                    }
                  },
                  "additionalProperties": false
                },
                "directives": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "pattern": "^v-"
                  },
                  "uniqueItems": true
                }
              }
            }
          ]
        }
      ],
      "description": "disallow the use of bare strings in `<template>`\nhttps://eslint.vuejs.org/rules/no-bare-strings-in-template.html"
    },
    "eslint-plugin-vue/no-boolean-default": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "disallow boolean defaults\nhttps://eslint.vuejs.org/rules/no-boolean-default.html"
    },
    "eslint-plugin-vue/no-child-content": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "additionalDirectives": {
                  "type": "array",
                  "uniqueItems": true,
                  "minItems": 1,
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          ]
        }
      ],
      "description": "disallow element's child contents which would be overwritten by a directive like `v-html` or `v-text`\nhttps://eslint.vuejs.org/rules/no-child-content.html"
    },
    "eslint-plugin-vue/no-computed-properties-in-data": {
      "description": "disallow accessing computed properties in `data`.\nhttps://eslint.vuejs.org/rules/no-computed-properties-in-data.html"
    },
    "eslint-plugin-vue/no-console": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allow": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "minItems": 1,
                  "uniqueItems": true
                }
              }
            }
          ]
        }
      ],
      "description": "Disallow the use of `console` in `<template>`\nhttps://eslint.vuejs.org/rules/no-console.html"
    },
    "eslint-plugin-vue/no-constant-condition": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "checkLoops": {
                  "type": "boolean",
                  "default": true
                }
              }
            }
          ]
        }
      ],
      "description": "Disallow constant expressions in conditions in `<template>`\nhttps://eslint.vuejs.org/rules/no-constant-condition.html"
    },
    "eslint-plugin-vue/no-custom-modifiers-on-v-model": {
      "description": "disallow custom modifiers on v-model used on the component\nhttps://eslint.vuejs.org/rules/no-custom-modifiers-on-v-model.html"
    },
    "eslint-plugin-vue/no-deprecated-data-object-declaration": {
      "description": "disallow using deprecated object declaration on data (in Vue.js 3.0.0+)\nhttps://eslint.vuejs.org/rules/no-deprecated-data-object-declaration.html"
    },
    "eslint-plugin-vue/no-deprecated-destroyed-lifecycle": {
      "description": "disallow using deprecated `destroyed` and `beforeDestroy` lifecycle hooks (in Vue.js 3.0.0+)\nhttps://eslint.vuejs.org/rules/no-deprecated-destroyed-lifecycle.html"
    },
    "eslint-plugin-vue/no-deprecated-dollar-listeners-api": {
      "description": "disallow using deprecated `$listeners` (in Vue.js 3.0.0+)\nhttps://eslint.vuejs.org/rules/no-deprecated-dollar-listeners-api.html"
    },
    "eslint-plugin-vue/no-deprecated-dollar-scopedslots-api": {
      "description": "disallow using deprecated `$scopedSlots` (in Vue.js 3.0.0+)\nhttps://eslint.vuejs.org/rules/no-deprecated-dollar-scopedslots-api.html"
    },
    "eslint-plugin-vue/no-deprecated-events-api": {
      "description": "disallow using deprecated events api (in Vue.js 3.0.0+)\nhttps://eslint.vuejs.org/rules/no-deprecated-events-api.html"
    },
    "eslint-plugin-vue/no-deprecated-filter": {
      "description": "disallow using deprecated filters syntax (in Vue.js 3.0.0+)\nhttps://eslint.vuejs.org/rules/no-deprecated-filter.html"
    },
    "eslint-plugin-vue/no-deprecated-functional-template": {
      "description": "disallow using deprecated the `functional` template (in Vue.js 3.0.0+)\nhttps://eslint.vuejs.org/rules/no-deprecated-functional-template.html"
    },
    "eslint-plugin-vue/no-deprecated-html-element-is": {
      "description": "disallow using deprecated the `is` attribute on HTML elements (in Vue.js 3.0.0+)\nhttps://eslint.vuejs.org/rules/no-deprecated-html-element-is.html"
    },
    "eslint-plugin-vue/no-deprecated-inline-template": {
      "description": "disallow using deprecated `inline-template` attribute (in Vue.js 3.0.0+)\nhttps://eslint.vuejs.org/rules/no-deprecated-inline-template.html"
    },
    "eslint-plugin-vue/no-deprecated-model-definition": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allowVue3Compat": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "disallow deprecated `model` definition (in Vue.js 3.0.0+)\nhttps://eslint.vuejs.org/rules/no-deprecated-model-definition.html"
    },
    "eslint-plugin-vue/no-deprecated-props-default-this": {
      "description": "disallow deprecated `this` access in props default function (in Vue.js 3.0.0+)\nhttps://eslint.vuejs.org/rules/no-deprecated-props-default-this.html"
    },
    "eslint-plugin-vue/no-deprecated-router-link-tag-prop": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "components": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "uniqueItems": true,
                  "minItems": 1
                }
              }
            }
          ]
        }
      ],
      "description": "disallow using deprecated `tag` property on `RouterLink` (in Vue.js 3.0.0+)\nhttps://eslint.vuejs.org/rules/no-deprecated-router-link-tag-prop.html"
    },
    "eslint-plugin-vue/no-deprecated-scope-attribute": {
      "description": "disallow deprecated `scope` attribute (in Vue.js 2.5.0+)\nhttps://eslint.vuejs.org/rules/no-deprecated-scope-attribute.html"
    },
    "eslint-plugin-vue/no-deprecated-slot-attribute": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "ignore": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "uniqueItems": true
                }
              }
            }
          ]
        }
      ],
      "description": "disallow deprecated `slot` attribute (in Vue.js 2.6.0+)\nhttps://eslint.vuejs.org/rules/no-deprecated-slot-attribute.html"
    },
    "eslint-plugin-vue/no-deprecated-slot-scope-attribute": {
      "description": "disallow deprecated `slot-scope` attribute (in Vue.js 2.6.0+)\nhttps://eslint.vuejs.org/rules/no-deprecated-slot-scope-attribute.html"
    },
    "eslint-plugin-vue/no-deprecated-v-bind-sync": {
      "description": "disallow use of deprecated `.sync` modifier on `v-bind` directive (in Vue.js 3.0.0+)\nhttps://eslint.vuejs.org/rules/no-deprecated-v-bind-sync.html"
    },
    "eslint-plugin-vue/no-deprecated-v-is": {
      "description": "disallow deprecated `v-is` directive (in Vue.js 3.1.0+)\nhttps://eslint.vuejs.org/rules/no-deprecated-v-is.html"
    },
    "eslint-plugin-vue/no-deprecated-v-on-native-modifier": {
      "description": "disallow using deprecated `.native` modifiers (in Vue.js 3.0.0+)\nhttps://eslint.vuejs.org/rules/no-deprecated-v-on-native-modifier.html"
    },
    "eslint-plugin-vue/no-deprecated-v-on-number-modifiers": {
      "description": "disallow using deprecated number (keycode) modifiers (in Vue.js 3.0.0+)\nhttps://eslint.vuejs.org/rules/no-deprecated-v-on-number-modifiers.html"
    },
    "eslint-plugin-vue/no-deprecated-vue-config-keycodes": {
      "description": "disallow using deprecated `Vue.config.keyCodes` (in Vue.js 3.0.0+)\nhttps://eslint.vuejs.org/rules/no-deprecated-vue-config-keycodes.html"
    },
    "eslint-plugin-vue/no-dupe-keys": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "groups": {
                  "type": "array"
                }
              }
            }
          ]
        }
      ],
      "description": "disallow duplication of field names\nhttps://eslint.vuejs.org/rules/no-dupe-keys.html"
    },
    "eslint-plugin-vue/no-dupe-v-else-if": {
      "description": "disallow duplicate conditions in `v-if` / `v-else-if` chains\nhttps://eslint.vuejs.org/rules/no-dupe-v-else-if.html"
    },
    "eslint-plugin-vue/no-duplicate-attr-inheritance": {
      "description": "enforce `inheritAttrs` to be set to `false` when using `v-bind=\"$attrs\"`\nhttps://eslint.vuejs.org/rules/no-duplicate-attr-inheritance.html"
    },
    "eslint-plugin-vue/no-duplicate-attributes": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allowCoexistClass": {
                  "type": "boolean"
                },
                "allowCoexistStyle": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "disallow duplication of attributes\nhttps://eslint.vuejs.org/rules/no-duplicate-attributes.html"
    },
    "eslint-plugin-vue/no-empty-component-block": {
      "description": "disallow the `<template>` `<script>` `<style>` block to be empty\nhttps://eslint.vuejs.org/rules/no-empty-component-block.html"
    },
    "eslint-plugin-vue/no-empty-pattern": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allowObjectPatternsAsParameters": {
                  "type": "boolean",
                  "default": false
                }
              }
            }
          ]
        }
      ],
      "description": "Disallow empty destructuring patterns in `<template>`\nhttps://eslint.vuejs.org/rules/no-empty-pattern.html"
    },
    "eslint-plugin-vue/no-export-in-script-setup": {
      "description": "disallow `export` in `<script setup>`\nhttps://eslint.vuejs.org/rules/no-export-in-script-setup.html"
    },
    "eslint-plugin-vue/no-expose-after-await": {
      "description": "disallow asynchronously registered `expose`\nhttps://eslint.vuejs.org/rules/no-expose-after-await.html"
    },
    "eslint-plugin-vue/no-extra-parens": {
      "description": "Disallow unnecessary parentheses in `<template>`\nhttps://eslint.vuejs.org/rules/no-extra-parens.html"
    },
    "eslint-plugin-vue/no-invalid-model-keys": {
      "description": "require valid keys in model option\nhttps://eslint.vuejs.org/rules/no-invalid-model-keys.html"
    },
    "eslint-plugin-vue/no-irregular-whitespace": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "skipComments": {
                  "type": "boolean",
                  "default": false
                },
                "skipStrings": {
                  "type": "boolean",
                  "default": true
                },
                "skipTemplates": {
                  "type": "boolean",
                  "default": false
                },
                "skipRegExps": {
                  "type": "boolean",
                  "default": false
                },
                "skipHTMLAttributeValues": {
                  "type": "boolean",
                  "default": false
                },
                "skipHTMLTextContents": {
                  "type": "boolean",
                  "default": false
                }
              }
            }
          ]
        }
      ],
      "description": "disallow irregular whitespace in `.vue` files\nhttps://eslint.vuejs.org/rules/no-irregular-whitespace.html"
    },
    "eslint-plugin-vue/no-lifecycle-after-await": {
      "description": "disallow asynchronously registered lifecycle hooks\nhttps://eslint.vuejs.org/rules/no-lifecycle-after-await.html"
    },
    "eslint-plugin-vue/no-lone-template": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "ignoreAccessible": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "disallow unnecessary `<template>`\nhttps://eslint.vuejs.org/rules/no-lone-template.html"
    },
    "eslint-plugin-vue/no-loss-of-precision": {
      "description": "Disallow literal numbers that lose precision in `<template>`\nhttps://eslint.vuejs.org/rules/no-loss-of-precision.html"
    },
    "eslint-plugin-vue/no-multi-spaces": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "ignoreProperties": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "disallow multiple spaces\nhttps://eslint.vuejs.org/rules/no-multi-spaces.html"
    },
    "eslint-plugin-vue/no-multiple-objects-in-class": {
      "description": "disallow to pass multiple objects into array to class\nhttps://eslint.vuejs.org/rules/no-multiple-objects-in-class.html"
    },
    "eslint-plugin-vue/no-multiple-slot-args": {
      "description": "disallow to pass multiple arguments to scoped slots\nhttps://eslint.vuejs.org/rules/no-multiple-slot-args.html"
    },
    "eslint-plugin-vue/no-multiple-template-root": {
      "description": "disallow adding multiple root nodes to the template\nhttps://eslint.vuejs.org/rules/no-multiple-template-root.html"
    },
    "eslint-plugin-vue/no-mutating-props": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "shallowOnly": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "disallow mutation of component props\nhttps://eslint.vuejs.org/rules/no-mutating-props.html"
    },
    "eslint-plugin-vue/no-parsing-error": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "abrupt-closing-of-empty-comment": {
                  "type": "boolean"
                },
                "absence-of-digits-in-numeric-character-reference": {
                  "type": "boolean"
                },
                "cdata-in-html-content": {
                  "type": "boolean"
                },
                "character-reference-outside-unicode-range": {
                  "type": "boolean"
                },
                "control-character-in-input-stream": {
                  "type": "boolean"
                },
                "control-character-reference": {
                  "type": "boolean"
                },
                "eof-before-tag-name": {
                  "type": "boolean"
                },
                "eof-in-cdata": {
                  "type": "boolean"
                },
                "eof-in-comment": {
                  "type": "boolean"
                },
                "eof-in-tag": {
                  "type": "boolean"
                },
                "incorrectly-closed-comment": {
                  "type": "boolean"
                },
                "incorrectly-opened-comment": {
                  "type": "boolean"
                },
                "invalid-first-character-of-tag-name": {
                  "type": "boolean"
                },
                "missing-attribute-value": {
                  "type": "boolean"
                },
                "missing-end-tag-name": {
                  "type": "boolean"
                },
                "missing-semicolon-after-character-reference": {
                  "type": "boolean"
                },
                "missing-whitespace-between-attributes": {
                  "type": "boolean"
                },
                "nested-comment": {
                  "type": "boolean"
                },
                "noncharacter-character-reference": {
                  "type": "boolean"
                },
                "noncharacter-in-input-stream": {
                  "type": "boolean"
                },
                "null-character-reference": {
                  "type": "boolean"
                },
                "surrogate-character-reference": {
                  "type": "boolean"
                },
                "surrogate-in-input-stream": {
                  "type": "boolean"
                },
                "unexpected-character-in-attribute-name": {
                  "type": "boolean"
                },
                "unexpected-character-in-unquoted-attribute-value": {
                  "type": "boolean"
                },
                "unexpected-equals-sign-before-attribute-name": {
                  "type": "boolean"
                },
                "unexpected-null-character": {
                  "type": "boolean"
                },
                "unexpected-question-mark-instead-of-tag-name": {
                  "type": "boolean"
                },
                "unexpected-solidus-in-tag": {
                  "type": "boolean"
                },
                "unknown-named-character-reference": {
                  "type": "boolean"
                },
                "end-tag-with-attributes": {
                  "type": "boolean"
                },
                "duplicate-attribute": {
                  "type": "boolean"
                },
                "end-tag-with-trailing-solidus": {
                  "type": "boolean"
                },
                "non-void-html-element-start-tag-with-trailing-solidus": {
                  "type": "boolean"
                },
                "x-invalid-end-tag": {
                  "type": "boolean"
                },
                "x-invalid-namespace": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "disallow parsing errors in `<template>`\nhttps://eslint.vuejs.org/rules/no-parsing-error.html"
    },
    "eslint-plugin-vue/no-potential-component-option-typo": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "presets": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": ["all", "vue", "vue-router", "nuxt"]
                  },
                  "uniqueItems": true,
                  "minItems": 0
                },
                "custom": {
                  "type": "array",
                  "minItems": 0,
                  "items": {
                    "type": "string"
                  },
                  "uniqueItems": true
                },
                "threshold": {
                  "type": "number",
                  "minimum": 1
                }
              }
            }
          ]
        }
      ],
      "description": "disallow a potential typo in your component property\nhttps://eslint.vuejs.org/rules/no-potential-component-option-typo.html"
    },
    "eslint-plugin-vue/no-ref-as-operand": {
      "description": "disallow use of value wrapped by `ref()` (Composition API) as an operand\nhttps://eslint.vuejs.org/rules/no-ref-as-operand.html"
    },
    "eslint-plugin-vue/no-ref-object-destructure": {
      "description": "disallow usages of ref objects that can lead to loss of reactivity\nhttps://eslint.vuejs.org/rules/no-ref-object-destructure.html"
    },
    "eslint-plugin-vue/no-ref-object-reactivity-loss": {
      "description": "disallow usages of ref objects that can lead to loss of reactivity\nhttps://eslint.vuejs.org/rules/no-ref-object-reactivity-loss.html"
    },
    "eslint-plugin-vue/no-required-prop-with-default": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "autofix": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "enforce props with default values to be optional\nhttps://eslint.vuejs.org/rules/no-required-prop-with-default.html"
    },
    "eslint-plugin-vue/no-reserved-component-names": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "disallowVueBuiltInComponents": {
                  "type": "boolean"
                },
                "disallowVue3BuiltInComponents": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "disallow the use of reserved names in component definitions\nhttps://eslint.vuejs.org/rules/no-reserved-component-names.html"
    },
    "eslint-plugin-vue/no-reserved-keys": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "reserved": {
                  "type": "array"
                },
                "groups": {
                  "type": "array"
                }
              }
            }
          ]
        }
      ],
      "description": "disallow overwriting reserved keys\nhttps://eslint.vuejs.org/rules/no-reserved-keys.html"
    },
    "eslint-plugin-vue/no-reserved-props": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "vueVersion": {
                  "enum": [2, 3]
                }
              }
            }
          ]
        }
      ],
      "description": "disallow reserved names in props\nhttps://eslint.vuejs.org/rules/no-reserved-props.html"
    },
    "eslint-plugin-vue/no-restricted-block": {
      "description": "disallow specific block\nhttps://eslint.vuejs.org/rules/no-restricted-block.html"
    },
    "eslint-plugin-vue/no-restricted-call-after-await": {
      "description": "disallow asynchronously called restricted methods\nhttps://eslint.vuejs.org/rules/no-restricted-call-after-await.html"
    },
    "eslint-plugin-vue/no-restricted-class": {
      "description": "disallow specific classes in Vue components\nhttps://eslint.vuejs.org/rules/no-restricted-class.html"
    },
    "eslint-plugin-vue/no-restricted-component-names": {
      "description": "disallow specific component names\nhttps://eslint.vuejs.org/rules/no-restricted-component-names.html"
    },
    "eslint-plugin-vue/no-restricted-component-options": {
      "description": "disallow specific component option\nhttps://eslint.vuejs.org/rules/no-restricted-component-options.html"
    },
    "eslint-plugin-vue/no-restricted-custom-event": {
      "description": "disallow specific custom event\nhttps://eslint.vuejs.org/rules/no-restricted-custom-event.html"
    },
    "eslint-plugin-vue/no-restricted-html-elements": {
      "description": "disallow specific HTML elements\nhttps://eslint.vuejs.org/rules/no-restricted-html-elements.html"
    },
    "eslint-plugin-vue/no-restricted-props": {
      "description": "disallow specific props\nhttps://eslint.vuejs.org/rules/no-restricted-props.html"
    },
    "eslint-plugin-vue/no-restricted-static-attribute": {
      "description": "disallow specific attribute\nhttps://eslint.vuejs.org/rules/no-restricted-static-attribute.html"
    },
    "eslint-plugin-vue/no-restricted-syntax": {
      "description": "Disallow specified syntax in `<template>`\nhttps://eslint.vuejs.org/rules/no-restricted-syntax.html"
    },
    "eslint-plugin-vue/no-restricted-v-bind": {
      "description": "disallow specific argument in `v-bind`\nhttps://eslint.vuejs.org/rules/no-restricted-v-bind.html"
    },
    "eslint-plugin-vue/no-restricted-v-on": {
      "description": "disallow specific argument in `v-on`\nhttps://eslint.vuejs.org/rules/no-restricted-v-on.html"
    },
    "eslint-plugin-vue/no-root-v-if": {
      "description": "disallow `v-if` directives on root element\nhttps://eslint.vuejs.org/rules/no-root-v-if.html"
    },
    "eslint-plugin-vue/no-setup-props-destructure": {
      "description": "disallow usages that lose the reactivity of `props` passed to `setup`\nhttps://eslint.vuejs.org/rules/no-setup-props-destructure.html"
    },
    "eslint-plugin-vue/no-setup-props-reactivity-loss": {
      "description": "disallow usages that lose the reactivity of `props` passed to `setup`\nhttps://eslint.vuejs.org/rules/no-setup-props-reactivity-loss.html"
    },
    "eslint-plugin-vue/no-shared-component-data": {
      "description": "enforce component's data property to be a function\nhttps://eslint.vuejs.org/rules/no-shared-component-data.html"
    },
    "eslint-plugin-vue/no-side-effects-in-computed-properties": {
      "description": "disallow side effects in computed properties\nhttps://eslint.vuejs.org/rules/no-side-effects-in-computed-properties.html"
    },
    "eslint-plugin-vue/no-spaces-around-equal-signs-in-attribute": {
      "description": "disallow spaces around equal signs in attribute\nhttps://eslint.vuejs.org/rules/no-spaces-around-equal-signs-in-attribute.html"
    },
    "eslint-plugin-vue/no-sparse-arrays": {
      "description": "Disallow sparse arrays in `<template>`\nhttps://eslint.vuejs.org/rules/no-sparse-arrays.html"
    },
    "eslint-plugin-vue/no-static-inline-styles": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allowBinding": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "disallow static inline `style` attributes\nhttps://eslint.vuejs.org/rules/no-static-inline-styles.html"
    },
    "eslint-plugin-vue/no-template-key": {
      "description": "disallow `key` attribute on `<template>`\nhttps://eslint.vuejs.org/rules/no-template-key.html"
    },
    "eslint-plugin-vue/no-template-shadow": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allow": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "uniqueItems": true
                }
              }
            }
          ]
        }
      ],
      "description": "disallow variable declarations from shadowing variables declared in the outer scope\nhttps://eslint.vuejs.org/rules/no-template-shadow.html"
    },
    "eslint-plugin-vue/no-template-target-blank": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allowReferrer": {
                  "type": "boolean"
                },
                "enforceDynamicLinks": {
                  "enum": ["always", "never"]
                }
              }
            }
          ]
        }
      ],
      "description": "disallow target=\"_blank\" attribute without rel=\"noopener noreferrer\"\nhttps://eslint.vuejs.org/rules/no-template-target-blank.html"
    },
    "eslint-plugin-vue/no-textarea-mustache": {
      "description": "disallow mustaches in `<textarea>`\nhttps://eslint.vuejs.org/rules/no-textarea-mustache.html"
    },
    "eslint-plugin-vue/no-this-in-before-route-enter": {
      "description": "disallow `this` usage in a `beforeRouteEnter` method\nhttps://eslint.vuejs.org/rules/no-this-in-before-route-enter.html"
    },
    "eslint-plugin-vue/no-undef-components": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "ignorePatterns": {
                  "type": "array"
                }
              }
            }
          ]
        }
      ],
      "description": "disallow use of undefined components in `<template>`\nhttps://eslint.vuejs.org/rules/no-undef-components.html"
    },
    "eslint-plugin-vue/no-undef-properties": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "ignores": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "uniqueItems": true
                }
              }
            }
          ]
        }
      ],
      "description": "disallow undefined properties\nhttps://eslint.vuejs.org/rules/no-undef-properties.html"
    },
    "eslint-plugin-vue/no-unsupported-features": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "version": {
                  "type": "string"
                },
                "ignores": {
                  "type": "array",
                  "items": {
                    "enum": [
                      "slot-scope-attribute",
                      "dynamic-directive-arguments",
                      "v-slot",
                      "script-setup",
                      "style-css-vars-injection",
                      "v-model-argument",
                      "v-model-custom-modifiers",
                      "v-is",
                      "is-attribute-with-vue-prefix",
                      "v-memo",
                      "v-bind-prop-modifier-shorthand",
                      "v-bind-attr-modifier",
                      "define-options",
                      "define-slots",
                      "define-model",
                      "v-bind-same-name-shorthand"
                    ]
                  },
                  "uniqueItems": true
                }
              }
            }
          ]
        }
      ],
      "description": "disallow unsupported Vue.js syntax on the specified version\nhttps://eslint.vuejs.org/rules/no-unsupported-features.html"
    },
    "eslint-plugin-vue/no-unused-components": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "ignoreWhenBindingPresent": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "disallow registering components that are not used inside templates\nhttps://eslint.vuejs.org/rules/no-unused-components.html"
    },
    "eslint-plugin-vue/no-unused-emit-declarations": {
      "description": "disallow unused emit declarations\nhttps://eslint.vuejs.org/rules/no-unused-emit-declarations.html"
    },
    "eslint-plugin-vue/no-unused-properties": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "groups": {
                  "type": "array",
                  "items": {
                    "enum": [
                      "props",
                      "data",
                      "asyncData",
                      "computed",
                      "methods",
                      "setup"
                    ]
                  },
                  "uniqueItems": true
                },
                "deepData": {
                  "type": "boolean"
                },
                "ignorePublicMembers": {
                  "type": "boolean"
                },
                "unreferencedOptions": {
                  "type": "array",
                  "items": {
                    "enum": [
                      "unknownMemberAsUnreferenced",
                      "returnAsUnreferenced"
                    ]
                  },
                  "uniqueItems": true
                }
              }
            }
          ]
        }
      ],
      "description": "disallow unused properties\nhttps://eslint.vuejs.org/rules/no-unused-properties.html"
    },
    "eslint-plugin-vue/no-unused-refs": {
      "description": "disallow unused refs\nhttps://eslint.vuejs.org/rules/no-unused-refs.html"
    },
    "eslint-plugin-vue/no-unused-vars": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "ignorePattern": {
                  "type": "string"
                }
              }
            }
          ]
        }
      ],
      "description": "disallow unused variable definitions of v-for directives or scope attributes\nhttps://eslint.vuejs.org/rules/no-unused-vars.html"
    },
    "eslint-plugin-vue/no-use-computed-property-like-method": {
      "description": "disallow use computed property like method\nhttps://eslint.vuejs.org/rules/no-use-computed-property-like-method.html"
    },
    "eslint-plugin-vue/no-use-v-else-with-v-for": {
      "description": "disallow using `v-else-if`/`v-else` on the same element as `v-for`\nhttps://eslint.vuejs.org/rules/no-use-v-else-with-v-for.html"
    },
    "eslint-plugin-vue/no-use-v-if-with-v-for": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allowUsingIterationVar": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "disallow using `v-if` on the same element as `v-for`\nhttps://eslint.vuejs.org/rules/no-use-v-if-with-v-for.html"
    },
    "eslint-plugin-vue/no-useless-concat": {
      "description": "Disallow unnecessary concatenation of literals or template literals in `<template>`\nhttps://eslint.vuejs.org/rules/no-useless-concat.html"
    },
    "eslint-plugin-vue/no-useless-mustaches": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "ignoreIncludesComment": {
                  "type": "boolean"
                },
                "ignoreStringEscape": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "disallow unnecessary mustache interpolations\nhttps://eslint.vuejs.org/rules/no-useless-mustaches.html"
    },
    "eslint-plugin-vue/no-useless-template-attributes": {
      "description": "disallow useless attribute on `<template>`\nhttps://eslint.vuejs.org/rules/no-useless-template-attributes.html"
    },
    "eslint-plugin-vue/no-useless-v-bind": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "ignoreIncludesComment": {
                  "type": "boolean"
                },
                "ignoreStringEscape": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "disallow unnecessary `v-bind` directives\nhttps://eslint.vuejs.org/rules/no-useless-v-bind.html"
    },
    "eslint-plugin-vue/no-v-for-template-key-on-child": {
      "description": "disallow key of `<template v-for>` placed on child elements\nhttps://eslint.vuejs.org/rules/no-v-for-template-key-on-child.html"
    },
    "eslint-plugin-vue/no-v-for-template-key": {
      "description": "disallow `key` attribute on `<template v-for>`\nhttps://eslint.vuejs.org/rules/no-v-for-template-key.html"
    },
    "eslint-plugin-vue/no-v-html": {
      "description": "disallow use of v-html to prevent XSS attack\nhttps://eslint.vuejs.org/rules/no-v-html.html"
    },
    "eslint-plugin-vue/no-v-model-argument": {
      "description": "disallow adding an argument to `v-model` used in custom component\nhttps://eslint.vuejs.org/rules/no-v-model-argument.html"
    },
    "eslint-plugin-vue/no-v-text-v-html-on-component": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allow": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "uniqueItems": true
                }
              }
            }
          ]
        }
      ],
      "description": "disallow v-text / v-html on component\nhttps://eslint.vuejs.org/rules/no-v-text-v-html-on-component.html"
    },
    "eslint-plugin-vue/no-v-text": {
      "description": "disallow use of v-text\nhttps://eslint.vuejs.org/rules/no-v-text.html"
    },
    "eslint-plugin-vue/no-watch-after-await": {
      "description": "disallow asynchronously registered `watch`\nhttps://eslint.vuejs.org/rules/no-watch-after-await.html"
    },
    "eslint-plugin-vue/object-curly-newline": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "Enforce consistent line breaks after opening and before closing braces in `<template>`\nhttps://eslint.vuejs.org/rules/object-curly-newline.html"
    },
    "eslint-plugin-vue/object-curly-spacing": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "Enforce consistent spacing inside braces in `<template>`\nhttps://eslint.vuejs.org/rules/object-curly-spacing.html"
    },
    "eslint-plugin-vue/object-property-newline": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allowAllPropertiesOnSameLine": {
                  "type": "boolean",
                  "default": false
                },
                "allowMultiplePropertiesPerLine": {
                  "type": "boolean",
                  "default": false
                }
              }
            }
          ]
        }
      ],
      "description": "Enforce placing object properties on separate lines in `<template>`\nhttps://eslint.vuejs.org/rules/object-property-newline.html"
    },
    "eslint-plugin-vue/object-shorthand": {
      "description": "Require or disallow method and property shorthand syntax for object literals in `<template>`\nhttps://eslint.vuejs.org/rules/object-shorthand.html"
    },
    "eslint-plugin-vue/one-component-per-file": {
      "description": "enforce that each component should be in its own file\nhttps://eslint.vuejs.org/rules/one-component-per-file.html"
    },
    "eslint-plugin-vue/operator-linebreak": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "Enforce consistent linebreak style for operators in `<template>`\nhttps://eslint.vuejs.org/rules/operator-linebreak.html"
    },
    "eslint-plugin-vue/order-in-components": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "order": {
                  "type": "array"
                }
              }
            }
          ]
        }
      ],
      "description": "enforce order of properties in components\nhttps://eslint.vuejs.org/rules/order-in-components.html"
    },
    "eslint-plugin-vue/padding-line-between-blocks": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "require or disallow padding lines between blocks\nhttps://eslint.vuejs.org/rules/padding-line-between-blocks.html"
    },
    "eslint-plugin-vue/padding-line-between-tags": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "require or disallow newlines between sibling tags in template\nhttps://eslint.vuejs.org/rules/padding-line-between-tags.html"
    },
    "eslint-plugin-vue/padding-lines-in-component-definition": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "require or disallow padding lines in component definition\nhttps://eslint.vuejs.org/rules/padding-lines-in-component-definition.html"
    },
    "eslint-plugin-vue/prefer-define-options": {
      "description": "enforce use of `defineOptions` instead of default export.\nhttps://eslint.vuejs.org/rules/prefer-define-options.html"
    },
    "eslint-plugin-vue/prefer-import-from-vue": {
      "description": "enforce import from 'vue' instead of import from '@vue/*'\nhttps://eslint.vuejs.org/rules/prefer-import-from-vue.html"
    },
    "eslint-plugin-vue/prefer-prop-type-boolean-first": {
      "description": "enforce `Boolean` comes first in component prop types\nhttps://eslint.vuejs.org/rules/prefer-prop-type-boolean-first.html"
    },
    "eslint-plugin-vue/prefer-separate-static-class": {
      "description": "require static class names in template to be in a separate `class` attribute\nhttps://eslint.vuejs.org/rules/prefer-separate-static-class.html"
    },
    "eslint-plugin-vue/prefer-template": {
      "description": "Require template literals instead of string concatenation in `<template>`\nhttps://eslint.vuejs.org/rules/prefer-template.html"
    },
    "eslint-plugin-vue/prefer-true-attribute-shorthand": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "require shorthand form attribute when `v-bind` value is `true`\nhttps://eslint.vuejs.org/rules/prefer-true-attribute-shorthand.html"
    },
    "eslint-plugin-vue/prop-name-casing": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "enforce specific casing for the Prop name in Vue components\nhttps://eslint.vuejs.org/rules/prop-name-casing.html"
    },
    "eslint-plugin-vue/quote-props": {
      "description": "Require quotes around object literal property names in `<template>`\nhttps://eslint.vuejs.org/rules/quote-props.html"
    },
    "eslint-plugin-vue/require-component-is": {
      "description": "require `v-bind:is` of `<component>` elements\nhttps://eslint.vuejs.org/rules/require-component-is.html"
    },
    "eslint-plugin-vue/require-default-prop": {
      "description": "require default value for props\nhttps://eslint.vuejs.org/rules/require-default-prop.html"
    },
    "eslint-plugin-vue/require-direct-export": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "disallowFunctionalComponentFunction": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "require the component to be directly exported\nhttps://eslint.vuejs.org/rules/require-direct-export.html"
    },
    "eslint-plugin-vue/require-emit-validator": {
      "description": "require type definitions in emits\nhttps://eslint.vuejs.org/rules/require-emit-validator.html"
    },
    "eslint-plugin-vue/require-explicit-emits": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allowProps": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "require `emits` option with name triggered by `$emit()`\nhttps://eslint.vuejs.org/rules/require-explicit-emits.html"
    },
    "eslint-plugin-vue/require-explicit-slots": {
      "description": "require slots to be explicitly defined\nhttps://eslint.vuejs.org/rules/require-explicit-slots.html"
    },
    "eslint-plugin-vue/require-expose": {
      "description": "require declare public properties using `expose`\nhttps://eslint.vuejs.org/rules/require-expose.html"
    },
    "eslint-plugin-vue/require-macro-variable-name": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "defineProps": {
                  "type": "string",
                  "default": "props"
                },
                "defineEmits": {
                  "type": "string",
                  "default": "emit"
                },
                "defineSlots": {
                  "type": "string",
                  "default": "slots"
                },
                "useSlots": {
                  "type": "string",
                  "default": "slots"
                },
                "useAttrs": {
                  "type": "string",
                  "default": "attrs"
                }
              }
            }
          ]
        }
      ],
      "description": "require a certain macro variable name\nhttps://eslint.vuejs.org/rules/require-macro-variable-name.html"
    },
    "eslint-plugin-vue/require-name-property": {
      "description": "require a name property in Vue components\nhttps://eslint.vuejs.org/rules/require-name-property.html"
    },
    "eslint-plugin-vue/require-prop-comment": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "type": {
                  "enum": ["JSDoc", "line", "block", "any"]
                }
              }
            }
          ]
        }
      ],
      "description": "require props to have a comment\nhttps://eslint.vuejs.org/rules/require-prop-comment.html"
    },
    "eslint-plugin-vue/require-prop-type-constructor": {
      "description": "require prop type to be a constructor\nhttps://eslint.vuejs.org/rules/require-prop-type-constructor.html"
    },
    "eslint-plugin-vue/require-prop-types": {
      "description": "require type definitions in props\nhttps://eslint.vuejs.org/rules/require-prop-types.html"
    },
    "eslint-plugin-vue/require-render-return": {
      "description": "enforce render function to always return value\nhttps://eslint.vuejs.org/rules/require-render-return.html"
    },
    "eslint-plugin-vue/require-slots-as-functions": {
      "description": "enforce properties of `$slots` to be used as a function\nhttps://eslint.vuejs.org/rules/require-slots-as-functions.html"
    },
    "eslint-plugin-vue/require-toggle-inside-transition": {
      "description": "require control the display of the content inside `<transition>`\nhttps://eslint.vuejs.org/rules/require-toggle-inside-transition.html"
    },
    "eslint-plugin-vue/require-typed-object-prop": {
      "description": "enforce adding type declarations to object props\nhttps://eslint.vuejs.org/rules/require-typed-object-prop.html"
    },
    "eslint-plugin-vue/require-typed-ref": {
      "description": "require `ref` and `shallowRef` functions to be strongly typed\nhttps://eslint.vuejs.org/rules/require-typed-ref.html"
    },
    "eslint-plugin-vue/require-v-for-key": {
      "description": "require `v-bind:key` with `v-for` directives\nhttps://eslint.vuejs.org/rules/require-v-for-key.html"
    },
    "eslint-plugin-vue/require-valid-default-prop": {
      "description": "enforce props default values to be valid\nhttps://eslint.vuejs.org/rules/require-valid-default-prop.html"
    },
    "eslint-plugin-vue/return-in-computed-property": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "treatUndefinedAsUnspecified": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "enforce that a return statement is present in computed property\nhttps://eslint.vuejs.org/rules/return-in-computed-property.html"
    },
    "eslint-plugin-vue/return-in-emits-validator": {
      "description": "enforce that a return statement is present in emits validator\nhttps://eslint.vuejs.org/rules/return-in-emits-validator.html"
    },
    "eslint-plugin-vue/script-indent": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "enforce consistent indentation in `<script>`\nhttps://eslint.vuejs.org/rules/script-indent.html"
    },
    "eslint-plugin-vue/script-setup-uses-vars": {
      "description": "prevent `<script setup>` variables used in `<template>` to be marked as unused\nhttps://eslint.vuejs.org/rules/script-setup-uses-vars.html"
    },
    "eslint-plugin-vue/singleline-html-element-content-newline": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "ignoreWhenNoAttributes": {
                  "type": "boolean"
                },
                "ignoreWhenEmpty": {
                  "type": "boolean"
                },
                "ignores": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "uniqueItems": true
                },
                "externalIgnores": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "uniqueItems": true
                }
              }
            }
          ]
        }
      ],
      "description": "require a line break before and after the contents of a singleline element\nhttps://eslint.vuejs.org/rules/singleline-html-element-content-newline.html"
    },
    "eslint-plugin-vue/sort-keys": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "enforce sort-keys in a manner that is compatible with order-in-components\nhttps://eslint.vuejs.org/rules/sort-keys.html"
    },
    "eslint-plugin-vue/space-in-parens": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "Enforce consistent spacing inside parentheses in `<template>`\nhttps://eslint.vuejs.org/rules/space-in-parens.html"
    },
    "eslint-plugin-vue/space-infix-ops": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "int32Hint": {
                  "type": "boolean",
                  "default": false
                }
              }
            }
          ]
        }
      ],
      "description": "Require spacing around infix operators in `<template>`\nhttps://eslint.vuejs.org/rules/space-infix-ops.html"
    },
    "eslint-plugin-vue/space-unary-ops": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "words": {
                  "type": "boolean",
                  "default": true
                },
                "nonwords": {
                  "type": "boolean",
                  "default": false
                },
                "overrides": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "boolean"
                  }
                }
              }
            }
          ]
        }
      ],
      "description": "Enforce consistent spacing before or after unary operators in `<template>`\nhttps://eslint.vuejs.org/rules/space-unary-ops.html"
    },
    "eslint-plugin-vue/static-class-names-order": {
      "description": "enforce static class names order\nhttps://eslint.vuejs.org/rules/static-class-names-order.html"
    },
    "eslint-plugin-vue/template-curly-spacing": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "Require or disallow spacing around embedded expressions of template strings in `<template>`\nhttps://eslint.vuejs.org/rules/template-curly-spacing.html"
    },
    "eslint-plugin-vue/this-in-template": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "disallow usage of `this` in template\nhttps://eslint.vuejs.org/rules/this-in-template.html"
    },
    "eslint-plugin-vue/use-v-on-exact": {
      "description": "enforce usage of `exact` modifier on `v-on`\nhttps://eslint.vuejs.org/rules/use-v-on-exact.html"
    },
    "eslint-plugin-vue/v-bind-style": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "enforce `v-bind` directive style\nhttps://eslint.vuejs.org/rules/v-bind-style.html"
    },
    "eslint-plugin-vue/v-for-delimiter-style": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "enforce `v-for` directive's delimiter style\nhttps://eslint.vuejs.org/rules/v-for-delimiter-style.html"
    },
    "eslint-plugin-vue/v-if-else-key": {
      "description": "require key attribute for conditionally rendered repeated components\nhttps://eslint.vuejs.org/rules/v-if-else-key.html"
    },
    "eslint-plugin-vue/v-on-event-hyphenation": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "enforce v-on event naming style on custom components in template\nhttps://eslint.vuejs.org/rules/v-on-event-hyphenation.html"
    },
    "eslint-plugin-vue/v-on-function-call": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "enforce or forbid parentheses after method calls without arguments in `v-on` directives\nhttps://eslint.vuejs.org/rules/v-on-function-call.html"
    },
    "eslint-plugin-vue/v-on-handler-style": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "enforce writing style for handlers in `v-on` directives\nhttps://eslint.vuejs.org/rules/v-on-handler-style.html"
    },
    "eslint-plugin-vue/v-on-style": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "enforce `v-on` directive style\nhttps://eslint.vuejs.org/rules/v-on-style.html"
    },
    "eslint-plugin-vue/v-slot-style": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "enforce `v-slot` directive style\nhttps://eslint.vuejs.org/rules/v-slot-style.html"
    },
    "eslint-plugin-vue/valid-attribute-name": {
      "description": "require valid attribute names\nhttps://eslint.vuejs.org/rules/valid-attribute-name.html"
    },
    "eslint-plugin-vue/valid-define-emits": {
      "description": "enforce valid `defineEmits` compiler macro\nhttps://eslint.vuejs.org/rules/valid-define-emits.html"
    },
    "eslint-plugin-vue/valid-define-options": {
      "description": "enforce valid `defineOptions` compiler macro\nhttps://eslint.vuejs.org/rules/valid-define-options.html"
    },
    "eslint-plugin-vue/valid-define-props": {
      "description": "enforce valid `defineProps` compiler macro\nhttps://eslint.vuejs.org/rules/valid-define-props.html"
    },
    "eslint-plugin-vue/valid-model-definition": {
      "description": "require valid keys in model option\nhttps://eslint.vuejs.org/rules/valid-model-definition.html"
    },
    "eslint-plugin-vue/valid-next-tick": {
      "description": "enforce valid `nextTick` function calls\nhttps://eslint.vuejs.org/rules/valid-next-tick.html"
    },
    "eslint-plugin-vue/valid-template-root": {
      "description": "enforce valid template root\nhttps://eslint.vuejs.org/rules/valid-template-root.html"
    },
    "eslint-plugin-vue/valid-v-bind-sync": {
      "description": "enforce valid `.sync` modifier on `v-bind` directives\nhttps://eslint.vuejs.org/rules/valid-v-bind-sync.html"
    },
    "eslint-plugin-vue/valid-v-bind": {
      "description": "enforce valid `v-bind` directives\nhttps://eslint.vuejs.org/rules/valid-v-bind.html"
    },
    "eslint-plugin-vue/valid-v-cloak": {
      "description": "enforce valid `v-cloak` directives\nhttps://eslint.vuejs.org/rules/valid-v-cloak.html"
    },
    "eslint-plugin-vue/valid-v-else-if": {
      "description": "enforce valid `v-else-if` directives\nhttps://eslint.vuejs.org/rules/valid-v-else-if.html"
    },
    "eslint-plugin-vue/valid-v-else": {
      "description": "enforce valid `v-else` directives\nhttps://eslint.vuejs.org/rules/valid-v-else.html"
    },
    "eslint-plugin-vue/valid-v-for": {
      "description": "enforce valid `v-for` directives\nhttps://eslint.vuejs.org/rules/valid-v-for.html"
    },
    "eslint-plugin-vue/valid-v-html": {
      "description": "enforce valid `v-html` directives\nhttps://eslint.vuejs.org/rules/valid-v-html.html"
    },
    "eslint-plugin-vue/valid-v-if": {
      "description": "enforce valid `v-if` directives\nhttps://eslint.vuejs.org/rules/valid-v-if.html"
    },
    "eslint-plugin-vue/valid-v-is": {
      "description": "enforce valid `v-is` directives\nhttps://eslint.vuejs.org/rules/valid-v-is.html"
    },
    "eslint-plugin-vue/valid-v-memo": {
      "description": "enforce valid `v-memo` directives\nhttps://eslint.vuejs.org/rules/valid-v-memo.html"
    },
    "eslint-plugin-vue/valid-v-model": {
      "description": "enforce valid `v-model` directives\nhttps://eslint.vuejs.org/rules/valid-v-model.html"
    },
    "eslint-plugin-vue/valid-v-on": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "modifiers": {
                  "type": "array"
                }
              }
            }
          ]
        }
      ],
      "description": "enforce valid `v-on` directives\nhttps://eslint.vuejs.org/rules/valid-v-on.html"
    },
    "eslint-plugin-vue/valid-v-once": {
      "description": "enforce valid `v-once` directives\nhttps://eslint.vuejs.org/rules/valid-v-once.html"
    },
    "eslint-plugin-vue/valid-v-pre": {
      "description": "enforce valid `v-pre` directives\nhttps://eslint.vuejs.org/rules/valid-v-pre.html"
    },
    "eslint-plugin-vue/valid-v-show": {
      "description": "enforce valid `v-show` directives\nhttps://eslint.vuejs.org/rules/valid-v-show.html"
    },
    "eslint-plugin-vue/valid-v-slot": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allowModifiers": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "enforce valid `v-slot` directives\nhttps://eslint.vuejs.org/rules/valid-v-slot.html"
    },
    "eslint-plugin-vue/valid-v-text": {
      "description": "enforce valid `v-text` directives\nhttps://eslint.vuejs.org/rules/valid-v-text.html"
    },
    "@typescript-eslint/adjacent-overload-signatures": {
      "description": "Require that function overload signatures be consecutive\nhttps://typescript-eslint.io/rules/adjacent-overload-signatures"
    },
    "@typescript-eslint/array-type": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "default": {
                  "description": "The array type expected for mutable cases."
                },
                "readonly": {
                  "description": "The array type expected for readonly cases. If omitted, the value for `default` will be used."
                }
              }
            }
          ]
        }
      ],
      "description": "Require consistently using either `T[]` or `Array<T>` for arrays\nhttps://typescript-eslint.io/rules/array-type"
    },
    "@typescript-eslint/await-thenable": {
      "description": "Disallow awaiting a value that is not a Thenable\nhttps://typescript-eslint.io/rules/await-thenable"
    },
    "@typescript-eslint/ban-ts-comment": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "ts-expect-error": {},
                "ts-ignore": {},
                "ts-nocheck": {},
                "ts-check": {},
                "minimumDescriptionLength": {
                  "type": "number",
                  "default": 3
                }
              }
            }
          ]
        }
      ],
      "description": "Disallow `@ts-<directive>` comments or require descriptions after directives\nhttps://typescript-eslint.io/rules/ban-ts-comment"
    },
    "@typescript-eslint/ban-tslint-comment": {
      "description": "Disallow `// tslint:<rule-flag>` comments\nhttps://typescript-eslint.io/rules/ban-tslint-comment"
    },
    "@typescript-eslint/ban-types": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "types": {
                  "type": "object",
                  "additionalProperties": {}
                },
                "extendDefaults": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Disallow certain types\nhttps://typescript-eslint.io/rules/ban-types"
    },
    "@typescript-eslint/block-spacing": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "Disallow or enforce spaces inside of blocks after opening block and before closing block\nhttps://typescript-eslint.io/rules/block-spacing"
    },
    "@typescript-eslint/brace-style": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "Enforce consistent brace style for blocks\nhttps://typescript-eslint.io/rules/brace-style"
    },
    "@typescript-eslint/class-literal-property-style": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "Enforce that literals on classes are exposed in a consistent style\nhttps://typescript-eslint.io/rules/class-literal-property-style"
    },
    "@typescript-eslint/class-methods-use-this": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "exceptMethods": {
                  "type": "array",
                  "description": "Allows specified method names to be ignored with this rule",
                  "items": {
                    "type": "string"
                  }
                },
                "enforceForClassFields": {
                  "type": "boolean",
                  "description": "Enforces that functions used as instance field initializers utilize `this`",
                  "default": true
                },
                "ignoreOverrideMethods": {
                  "type": "boolean",
                  "description": "Ignore members marked with the `override` modifier"
                },
                "ignoreClassesThatImplementAnInterface": {
                  "oneOf": [
                    {
                      "type": "boolean",
                      "description": "Ignore all classes that implement an interface"
                    },
                    {
                      "type": "string",
                      "enum": ["public-fields"],
                      "description": "Ignore only the public fields of classes that implement an interface"
                    }
                  ],
                  "description": "Ignore classes that specifically implement some interface"
                }
              }
            }
          ]
        }
      ],
      "description": "Enforce that class methods utilize `this`\nhttps://typescript-eslint.io/rules/class-methods-use-this"
    },
    "@typescript-eslint/comma-dangle": {
      "description": "Require or disallow trailing commas\nhttps://typescript-eslint.io/rules/comma-dangle"
    },
    "@typescript-eslint/comma-spacing": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "before": {
                  "type": "boolean",
                  "default": false
                },
                "after": {
                  "type": "boolean",
                  "default": true
                }
              }
            }
          ]
        }
      ],
      "description": "Enforce consistent spacing before and after commas\nhttps://typescript-eslint.io/rules/comma-spacing"
    },
    "@typescript-eslint/consistent-generic-constructors": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "Enforce specifying generic type arguments on type annotation or constructor name of a constructor call\nhttps://typescript-eslint.io/rules/consistent-generic-constructors"
    },
    "@typescript-eslint/consistent-indexed-object-style": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "string",
              "enum": ["record", "index-signature"],
              "description": "Whether to only allow the `Record` type or only allow index signatures"
            }
          ]
        }
      ],
      "description": "Require or disallow the `Record` type\nhttps://typescript-eslint.io/rules/consistent-indexed-object-style"
    },
    "@typescript-eslint/consistent-return": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "treatUndefinedAsUnspecified": {
                  "type": "boolean",
                  "default": false
                }
              }
            }
          ]
        }
      ],
      "description": "Require `return` statements to either always or never specify values\nhttps://typescript-eslint.io/rules/consistent-return"
    },
    "@typescript-eslint/consistent-type-assertions": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "Enforce consistent usage of type assertions\nhttps://typescript-eslint.io/rules/consistent-type-assertions"
    },
    "@typescript-eslint/consistent-type-definitions": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "string",
              "description": "This rule accepts the following options: \"interface\" (default): enforce using interfaces for object type definitions. \"type\": enforce using types for object type definitions.",
              "enum": ["interface", "type"]
            }
          ]
        }
      ],
      "description": "Enforce type definitions to consistently use either `interface` or `type`\nhttps://typescript-eslint.io/rules/consistent-type-definitions"
    },
    "@typescript-eslint/consistent-type-exports": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "fixMixedExportsWithInlineTypeSpecifier": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Enforce consistent usage of type exports\nhttps://typescript-eslint.io/rules/consistent-type-exports"
    },
    "@typescript-eslint/consistent-type-imports": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "disallowTypeAnnotations": {
                  "type": "boolean"
                },
                "fixStyle": {
                  "type": "string",
                  "enum": ["separate-type-imports", "inline-type-imports"]
                },
                "prefer": {
                  "type": "string",
                  "enum": ["type-imports", "no-type-imports"]
                }
              }
            }
          ]
        }
      ],
      "description": "Enforce consistent usage of type imports\nhttps://typescript-eslint.io/rules/consistent-type-imports"
    },
    "@typescript-eslint/default-param-last": {
      "description": "Enforce default parameters to be last\nhttps://typescript-eslint.io/rules/default-param-last"
    },
    "@typescript-eslint/dot-notation": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allowKeywords": {
                  "type": "boolean",
                  "default": true
                },
                "allowPattern": {
                  "type": "string",
                  "default": ""
                },
                "allowPrivateClassPropertyAccess": {
                  "type": "boolean",
                  "default": false
                },
                "allowProtectedClassPropertyAccess": {
                  "type": "boolean",
                  "default": false
                },
                "allowIndexSignaturePropertyAccess": {
                  "type": "boolean",
                  "default": false
                }
              }
            }
          ]
        }
      ],
      "description": "Enforce dot notation whenever possible\nhttps://typescript-eslint.io/rules/dot-notation"
    },
    "@typescript-eslint/explicit-function-return-type": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allowConciseArrowFunctionExpressionsStartingWithVoid": {
                  "description": "Whether to allow arrow functions that start with the `void` keyword.",
                  "type": "boolean"
                },
                "allowExpressions": {
                  "description": "Whether to ignore function expressions (functions which are not part of a declaration).",
                  "type": "boolean"
                },
                "allowHigherOrderFunctions": {
                  "description": "Whether to ignore functions immediately returning another function expression.",
                  "type": "boolean"
                },
                "allowTypedFunctionExpressions": {
                  "description": "Whether to ignore type annotations on the variable of function expressions.",
                  "type": "boolean"
                },
                "allowDirectConstAssertionInArrowFunctions": {
                  "description": "Whether to ignore arrow functions immediately returning a `as const` value.",
                  "type": "boolean"
                },
                "allowFunctionsWithoutTypeParameters": {
                  "description": "Whether to ignore functions that don't have generic type parameters.",
                  "type": "boolean"
                },
                "allowedNames": {
                  "description": "An array of function/method names that will not have their arguments or return values checked.",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "allowIIFEs": {
                  "description": "Whether to ignore immediately invoked function expressions (IIFEs).",
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Require explicit return types on functions and class methods\nhttps://typescript-eslint.io/rules/explicit-function-return-type"
    },
    "@typescript-eslint/explicit-member-accessibility": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "accessibility": {},
                "overrides": {
                  "type": "object",
                  "properties": {
                    "accessors": {},
                    "constructors": {},
                    "methods": {},
                    "properties": {},
                    "parameterProperties": {}
                  },
                  "additionalProperties": false
                },
                "ignoredMethodNames": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          ]
        }
      ],
      "description": "Require explicit accessibility modifiers on class properties and methods\nhttps://typescript-eslint.io/rules/explicit-member-accessibility"
    },
    "@typescript-eslint/explicit-module-boundary-types": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allowArgumentsExplicitlyTypedAsAny": {
                  "description": "Whether to ignore arguments that are explicitly typed as `any`.",
                  "type": "boolean"
                },
                "allowDirectConstAssertionInArrowFunctions": {
                  "description": "Whether to ignore return type annotations on body-less arrow functions that return an `as const` type assertion.\nYou must still type the parameters of the function.",
                  "type": "boolean"
                },
                "allowedNames": {
                  "description": "An array of function/method names that will not have their arguments or return values checked.",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "allowHigherOrderFunctions": {
                  "description": "Whether to ignore return type annotations on functions immediately returning another function expression.\nYou must still type the parameters of the function.",
                  "type": "boolean"
                },
                "allowTypedFunctionExpressions": {
                  "description": "Whether to ignore type annotations on the variable of a function expression.",
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Require explicit return and argument types on exported functions' and classes' public class methods\nhttps://typescript-eslint.io/rules/explicit-module-boundary-types"
    },
    "@typescript-eslint/func-call-spacing": {
      "description": "Require or disallow spacing between function identifiers and their invocations\nhttps://typescript-eslint.io/rules/func-call-spacing"
    },
    "@typescript-eslint/indent": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "Enforce consistent indentation\nhttps://typescript-eslint.io/rules/indent"
    },
    "@typescript-eslint/init-declarations": {
      "description": "Require or disallow initialization in variable declarations\nhttps://typescript-eslint.io/rules/init-declarations"
    },
    "@typescript-eslint/key-spacing": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "Enforce consistent spacing between property names and type annotations in types and interfaces\nhttps://typescript-eslint.io/rules/key-spacing"
    },
    "@typescript-eslint/keyword-spacing": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "before": {
                  "type": "boolean",
                  "default": true
                },
                "after": {
                  "type": "boolean",
                  "default": true
                },
                "overrides": {
                  "type": "object",
                  "properties": {
                    "abstract": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "as": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "async": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "await": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "boolean": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "break": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "byte": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "case": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "catch": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "char": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "class": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "const": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "continue": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "debugger": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "default": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "delete": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "do": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "double": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "else": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "enum": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "export": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "extends": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "false": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "final": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "finally": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "float": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "for": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "from": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "function": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "get": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "goto": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "if": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "implements": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "import": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "in": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "instanceof": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "int": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "interface": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "let": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "long": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "native": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "new": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "null": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "of": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "package": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "private": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "protected": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "public": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "return": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "set": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "short": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "static": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "super": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "switch": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "synchronized": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "this": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "throw": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "throws": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "transient": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "true": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "try": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "typeof": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "var": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "void": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "volatile": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "while": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "with": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "yield": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    },
                    "type": {
                      "type": "object",
                      "properties": {
                        "before": {
                          "type": "boolean"
                        },
                        "after": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "additionalProperties": false
                }
              }
            }
          ]
        }
      ],
      "description": "Enforce consistent spacing before and after keywords\nhttps://typescript-eslint.io/rules/keyword-spacing"
    },
    "@typescript-eslint/lines-around-comment": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "beforeBlockComment": {
                  "type": "boolean",
                  "default": true
                },
                "afterBlockComment": {
                  "type": "boolean",
                  "default": false
                },
                "beforeLineComment": {
                  "type": "boolean",
                  "default": false
                },
                "afterLineComment": {
                  "type": "boolean",
                  "default": false
                },
                "allowBlockStart": {
                  "type": "boolean",
                  "default": false
                },
                "allowBlockEnd": {
                  "type": "boolean",
                  "default": false
                },
                "allowClassStart": {
                  "type": "boolean"
                },
                "allowClassEnd": {
                  "type": "boolean"
                },
                "allowObjectStart": {
                  "type": "boolean"
                },
                "allowObjectEnd": {
                  "type": "boolean"
                },
                "allowArrayStart": {
                  "type": "boolean"
                },
                "allowArrayEnd": {
                  "type": "boolean"
                },
                "allowInterfaceStart": {
                  "type": "boolean"
                },
                "allowInterfaceEnd": {
                  "type": "boolean"
                },
                "allowTypeStart": {
                  "type": "boolean"
                },
                "allowTypeEnd": {
                  "type": "boolean"
                },
                "allowEnumStart": {
                  "type": "boolean"
                },
                "allowEnumEnd": {
                  "type": "boolean"
                },
                "allowModuleStart": {
                  "type": "boolean"
                },
                "allowModuleEnd": {
                  "type": "boolean"
                },
                "ignorePattern": {
                  "type": "string"
                },
                "applyDefaultIgnorePatterns": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Require empty lines around comments\nhttps://typescript-eslint.io/rules/lines-around-comment"
    },
    "@typescript-eslint/lines-between-class-members": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "Require or disallow an empty line between class members\nhttps://typescript-eslint.io/rules/lines-between-class-members"
    },
    "@typescript-eslint/max-params": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "maximum": {
                  "type": "integer",
                  "minimum": 0
                },
                "max": {
                  "type": "integer",
                  "minimum": 0
                },
                "countVoidThis": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Enforce a maximum number of parameters in function definitions\nhttps://typescript-eslint.io/rules/max-params"
    },
    "@typescript-eslint/member-delimiter-style": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "multiline": {
                  "type": "object",
                  "properties": {
                    "delimiter": {},
                    "requireLast": {
                      "type": "boolean"
                    }
                  },
                  "additionalProperties": false
                },
                "singleline": {
                  "type": "object",
                  "properties": {
                    "delimiter": {},
                    "requireLast": {
                      "type": "boolean"
                    }
                  },
                  "additionalProperties": false
                },
                "overrides": {
                  "type": "object",
                  "properties": {
                    "interface": {},
                    "typeLiteral": {}
                  },
                  "additionalProperties": false
                },
                "multilineDetection": {
                  "type": "string",
                  "enum": ["brackets", "last-member"]
                }
              }
            }
          ]
        }
      ],
      "description": "Require a specific member delimiter style for interfaces and type literals\nhttps://typescript-eslint.io/rules/member-delimiter-style"
    },
    "@typescript-eslint/member-ordering": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "default": {},
                "classes": {},
                "classExpressions": {},
                "interfaces": {},
                "typeLiterals": {}
              }
            }
          ]
        }
      ],
      "description": "Require a consistent member declaration order\nhttps://typescript-eslint.io/rules/member-ordering"
    },
    "@typescript-eslint/method-signature-style": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "Enforce using a particular method signature syntax\nhttps://typescript-eslint.io/rules/method-signature-style"
    },
    "@typescript-eslint/naming-convention": {
      "description": "Enforce naming conventions for everything across a codebase\nhttps://typescript-eslint.io/rules/naming-convention"
    },
    "@typescript-eslint/no-array-constructor": {
      "description": "Disallow generic `Array` constructors\nhttps://typescript-eslint.io/rules/no-array-constructor"
    },
    "@typescript-eslint/no-array-delete": {
      "description": "Disallow using the `delete` operator on array values\nhttps://typescript-eslint.io/rules/no-array-delete"
    },
    "@typescript-eslint/no-base-to-string": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "ignoredTypeNames": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          ]
        }
      ],
      "description": "Require `.toString()` to only be called on objects which provide useful information when stringified\nhttps://typescript-eslint.io/rules/no-base-to-string"
    },
    "@typescript-eslint/no-confusing-non-null-assertion": {
      "description": "Disallow non-null assertion in locations that may be confusing\nhttps://typescript-eslint.io/rules/no-confusing-non-null-assertion"
    },
    "@typescript-eslint/no-confusing-void-expression": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "ignoreArrowShorthand": {
                  "type": "boolean"
                },
                "ignoreVoidOperator": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Require expressions of type void to appear in statement position\nhttps://typescript-eslint.io/rules/no-confusing-void-expression"
    },
    "@typescript-eslint/no-dupe-class-members": {
      "description": "Disallow duplicate class members\nhttps://typescript-eslint.io/rules/no-dupe-class-members"
    },
    "@typescript-eslint/no-duplicate-enum-values": {
      "description": "Disallow duplicate enum member values\nhttps://typescript-eslint.io/rules/no-duplicate-enum-values"
    },
    "@typescript-eslint/no-duplicate-type-constituents": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "ignoreIntersections": {
                  "type": "boolean"
                },
                "ignoreUnions": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Disallow duplicate constituents of union or intersection types\nhttps://typescript-eslint.io/rules/no-duplicate-type-constituents"
    },
    "@typescript-eslint/no-dynamic-delete": {
      "description": "Disallow using the `delete` operator on computed key expressions\nhttps://typescript-eslint.io/rules/no-dynamic-delete"
    },
    "@typescript-eslint/no-empty-function": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allow": {
                  "type": "array",
                  "items": {
                    "enum": [
                      "functions",
                      "arrowFunctions",
                      "generatorFunctions",
                      "methods",
                      "generatorMethods",
                      "getters",
                      "setters",
                      "constructors",
                      "private-constructors",
                      "protected-constructors",
                      "asyncFunctions",
                      "asyncMethods",
                      "decoratedFunctions",
                      "overrideMethods"
                    ],
                    "type": "string"
                  },
                  "uniqueItems": true
                }
              }
            }
          ]
        }
      ],
      "description": "Disallow empty functions\nhttps://typescript-eslint.io/rules/no-empty-function"
    },
    "@typescript-eslint/no-empty-interface": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allowSingleExtends": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Disallow the declaration of empty interfaces\nhttps://typescript-eslint.io/rules/no-empty-interface"
    },
    "@typescript-eslint/no-explicit-any": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "fixToUnknown": {
                  "description": "Whether to enable auto-fixing in which the `any` type is converted to the `unknown` type.",
                  "type": "boolean"
                },
                "ignoreRestArgs": {
                  "description": "Whether to ignore rest parameter arrays.",
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Disallow the `any` type\nhttps://typescript-eslint.io/rules/no-explicit-any"
    },
    "@typescript-eslint/no-extra-non-null-assertion": {
      "description": "Disallow extra non-null assertions\nhttps://typescript-eslint.io/rules/no-extra-non-null-assertion"
    },
    "@typescript-eslint/no-extra-parens": {
      "description": "Disallow unnecessary parentheses\nhttps://typescript-eslint.io/rules/no-extra-parens"
    },
    "@typescript-eslint/no-extra-semi": {
      "description": "Disallow unnecessary semicolons\nhttps://typescript-eslint.io/rules/no-extra-semi"
    },
    "@typescript-eslint/no-extraneous-class": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allowConstructorOnly": {
                  "description": "Whether to allow extraneous classes that contain only a constructor.",
                  "type": "boolean"
                },
                "allowEmpty": {
                  "description": "Whether to allow extraneous classes that have no body (i.e. are empty).",
                  "type": "boolean"
                },
                "allowStaticOnly": {
                  "description": "Whether to allow extraneous classes that only contain static members.",
                  "type": "boolean"
                },
                "allowWithDecorator": {
                  "description": "Whether to allow extraneous classes that include a decorator.",
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Disallow classes used as namespaces\nhttps://typescript-eslint.io/rules/no-extraneous-class"
    },
    "@typescript-eslint/no-floating-promises": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "ignoreVoid": {
                  "description": "Whether to ignore `void` expressions.",
                  "type": "boolean"
                },
                "ignoreIIFE": {
                  "description": "Whether to ignore async IIFEs (Immediately Invoked Function Expressions).",
                  "type": "boolean"
                },
                "allowForKnownSafePromises": {
                  "type": "array",
                  "items": {
                    "oneOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "from": {
                            "type": "string",
                            "enum": ["file"]
                          },
                          "name": {
                            "oneOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "minItems": 1,
                                "uniqueItems": true,
                                "items": {
                                  "type": "string"
                                }
                              }
                            ]
                          },
                          "path": {
                            "type": "string"
                          }
                        },
                        "required": ["from", "name"]
                      },
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "from": {
                            "type": "string",
                            "enum": ["lib"]
                          },
                          "name": {
                            "oneOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "minItems": 1,
                                "uniqueItems": true,
                                "items": {
                                  "type": "string"
                                }
                              }
                            ]
                          }
                        },
                        "required": ["from", "name"]
                      },
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "from": {
                            "type": "string",
                            "enum": ["package"]
                          },
                          "name": {
                            "oneOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "minItems": 1,
                                "uniqueItems": true,
                                "items": {
                                  "type": "string"
                                }
                              }
                            ]
                          },
                          "package": {
                            "type": "string"
                          }
                        },
                        "required": ["from", "name", "package"]
                      }
                    ]
                  }
                }
              }
            }
          ]
        }
      ],
      "description": "Require Promise-like statements to be handled appropriately\nhttps://typescript-eslint.io/rules/no-floating-promises"
    },
    "@typescript-eslint/no-for-in-array": {
      "description": "Disallow iterating over an array with a for-in loop\nhttps://typescript-eslint.io/rules/no-for-in-array"
    },
    "@typescript-eslint/no-implied-eval": {
      "description": "Disallow the use of `eval()`-like methods\nhttps://typescript-eslint.io/rules/no-implied-eval"
    },
    "@typescript-eslint/no-import-type-side-effects": {
      "description": "Enforce the use of top-level import type qualifier when an import only has specifiers with inline type qualifiers\nhttps://typescript-eslint.io/rules/no-import-type-side-effects"
    },
    "@typescript-eslint/no-inferrable-types": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "ignoreParameters": {
                  "type": "boolean"
                },
                "ignoreProperties": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Disallow explicit type declarations for variables or parameters initialized to a number, string, or boolean\nhttps://typescript-eslint.io/rules/no-inferrable-types"
    },
    "@typescript-eslint/no-invalid-this": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "capIsConstructor": {
                  "type": "boolean",
                  "default": true
                }
              }
            }
          ]
        }
      ],
      "description": "Disallow `this` keywords outside of classes or class-like objects\nhttps://typescript-eslint.io/rules/no-invalid-this"
    },
    "@typescript-eslint/no-invalid-void-type": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allowInGenericTypeArguments": {
                  "oneOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "minItems": 1
                    }
                  ]
                },
                "allowAsThisParameter": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Disallow `void` type outside of generic or return types\nhttps://typescript-eslint.io/rules/no-invalid-void-type"
    },
    "@typescript-eslint/no-loop-func": {
      "description": "Disallow function declarations that contain unsafe references inside loop statements\nhttps://typescript-eslint.io/rules/no-loop-func"
    },
    "@typescript-eslint/no-loss-of-precision": {
      "description": "Disallow literal numbers that lose precision\nhttps://typescript-eslint.io/rules/no-loss-of-precision"
    },
    "@typescript-eslint/no-magic-numbers": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "detectObjects": {
                  "type": "boolean",
                  "default": false
                },
                "enforceConst": {
                  "type": "boolean",
                  "default": false
                },
                "ignore": {
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "pattern": "^[+-]?(?:0|[1-9][0-9]*)n$"
                      }
                    ]
                  },
                  "uniqueItems": true
                },
                "ignoreArrayIndexes": {
                  "type": "boolean",
                  "default": false
                },
                "ignoreDefaultValues": {
                  "type": "boolean",
                  "default": false
                },
                "ignoreClassFieldInitialValues": {
                  "type": "boolean",
                  "default": false
                },
                "ignoreNumericLiteralTypes": {
                  "type": "boolean"
                },
                "ignoreEnums": {
                  "type": "boolean"
                },
                "ignoreReadonlyClassProperties": {
                  "type": "boolean"
                },
                "ignoreTypeIndexes": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Disallow magic numbers\nhttps://typescript-eslint.io/rules/no-magic-numbers"
    },
    "@typescript-eslint/no-meaningless-void-operator": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "checkNever": {
                  "type": "boolean",
                  "default": false
                }
              }
            }
          ]
        }
      ],
      "description": "Disallow the `void` operator except when used to discard a value\nhttps://typescript-eslint.io/rules/no-meaningless-void-operator"
    },
    "@typescript-eslint/no-misused-new": {
      "description": "Enforce valid definition of `new` and `constructor`\nhttps://typescript-eslint.io/rules/no-misused-new"
    },
    "@typescript-eslint/no-misused-promises": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "checksConditionals": {
                  "type": "boolean"
                },
                "checksVoidReturn": {
                  "oneOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "additionalProperties": false,
                      "properties": {
                        "arguments": {
                          "type": "boolean"
                        },
                        "attributes": {
                          "type": "boolean"
                        },
                        "properties": {
                          "type": "boolean"
                        },
                        "returns": {
                          "type": "boolean"
                        },
                        "variables": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    }
                  ]
                },
                "checksSpreads": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Disallow Promises in places not designed to handle them\nhttps://typescript-eslint.io/rules/no-misused-promises"
    },
    "@typescript-eslint/no-mixed-enums": {
      "description": "Disallow enums from having both number and string members\nhttps://typescript-eslint.io/rules/no-mixed-enums"
    },
    "@typescript-eslint/no-namespace": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allowDeclarations": {
                  "description": "Whether to allow `declare` with custom TypeScript namespaces.",
                  "type": "boolean"
                },
                "allowDefinitionFiles": {
                  "description": "Whether to allow `declare` with custom TypeScript namespaces inside definition files.",
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Disallow TypeScript namespaces\nhttps://typescript-eslint.io/rules/no-namespace"
    },
    "@typescript-eslint/no-non-null-asserted-nullish-coalescing": {
      "description": "Disallow non-null assertions in the left operand of a nullish coalescing operator\nhttps://typescript-eslint.io/rules/no-non-null-asserted-nullish-coalescing"
    },
    "@typescript-eslint/no-non-null-asserted-optional-chain": {
      "description": "Disallow non-null assertions after an optional chain expression\nhttps://typescript-eslint.io/rules/no-non-null-asserted-optional-chain"
    },
    "@typescript-eslint/no-non-null-assertion": {
      "description": "Disallow non-null assertions using the `!` postfix operator\nhttps://typescript-eslint.io/rules/no-non-null-assertion"
    },
    "@typescript-eslint/no-redeclare": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "builtinGlobals": {
                  "type": "boolean"
                },
                "ignoreDeclarationMerge": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Disallow variable redeclaration\nhttps://typescript-eslint.io/rules/no-redeclare"
    },
    "@typescript-eslint/no-redundant-type-constituents": {
      "description": "Disallow members of unions and intersections that do nothing or override type information\nhttps://typescript-eslint.io/rules/no-redundant-type-constituents"
    },
    "@typescript-eslint/no-require-imports": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allow": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Patterns of import paths to allow requiring from."
                }
              }
            }
          ]
        }
      ],
      "description": "Disallow invocation of `require()`\nhttps://typescript-eslint.io/rules/no-require-imports"
    },
    "@typescript-eslint/no-restricted-imports": {
      "description": "Disallow specified modules when loaded by `import`\nhttps://typescript-eslint.io/rules/no-restricted-imports"
    },
    "@typescript-eslint/no-shadow": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "builtinGlobals": {
                  "type": "boolean"
                },
                "hoist": {
                  "type": "string",
                  "enum": ["all", "functions", "never"]
                },
                "allow": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "ignoreOnInitialization": {
                  "type": "boolean"
                },
                "ignoreTypeValueShadow": {
                  "type": "boolean"
                },
                "ignoreFunctionTypeParameterNameValueShadow": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Disallow variable declarations from shadowing variables declared in the outer scope\nhttps://typescript-eslint.io/rules/no-shadow"
    },
    "@typescript-eslint/no-this-alias": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allowDestructuring": {
                  "description": "Whether to ignore destructurings, such as `const { props, state } = this`.",
                  "type": "boolean"
                },
                "allowedNames": {
                  "description": "Names to ignore, such as [\"self\"] for `const self = this;`.",
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          ]
        }
      ],
      "description": "Disallow aliasing `this`\nhttps://typescript-eslint.io/rules/no-this-alias"
    },
    "@typescript-eslint/no-throw-literal": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allowThrowingAny": {
                  "type": "boolean"
                },
                "allowThrowingUnknown": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Disallow throwing literals as exceptions\nhttps://typescript-eslint.io/rules/no-throw-literal"
    },
    "@typescript-eslint/no-type-alias": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allowAliases": {
                  "description": "Whether to allow direct one-to-one type aliases."
                },
                "allowCallbacks": {
                  "description": "Whether to allow type aliases for callbacks."
                },
                "allowConditionalTypes": {
                  "description": "Whether to allow type aliases for conditional types."
                },
                "allowConstructors": {
                  "description": "Whether to allow type aliases with constructors."
                },
                "allowLiterals": {
                  "description": "Whether to allow type aliases with object literal types."
                },
                "allowMappedTypes": {
                  "description": "Whether to allow type aliases with mapped types."
                },
                "allowTupleTypes": {
                  "description": "Whether to allow type aliases with tuple types."
                },
                "allowGenerics": {
                  "description": "Whether to allow type aliases with generic types."
                }
              }
            }
          ]
        }
      ],
      "description": "Disallow type aliases\nhttps://typescript-eslint.io/rules/no-type-alias"
    },
    "@typescript-eslint/no-unnecessary-boolean-literal-compare": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allowComparingNullableBooleansToTrue": {
                  "description": "Whether to allow comparisons between nullable boolean variables and `true`.",
                  "type": "boolean"
                },
                "allowComparingNullableBooleansToFalse": {
                  "description": "Whether to allow comparisons between nullable boolean variables and `false`.",
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Disallow unnecessary equality comparisons against boolean literals\nhttps://typescript-eslint.io/rules/no-unnecessary-boolean-literal-compare"
    },
    "@typescript-eslint/no-unnecessary-condition": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allowConstantLoopConditions": {
                  "description": "Whether to ignore constant loop conditions, such as `while (true)`.",
                  "type": "boolean"
                },
                "allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing": {
                  "description": "Whether to not error when running with a tsconfig that has strictNullChecks turned.",
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Disallow conditionals where the type is always truthy or always falsy\nhttps://typescript-eslint.io/rules/no-unnecessary-condition"
    },
    "@typescript-eslint/no-unnecessary-qualifier": {
      "description": "Disallow unnecessary namespace qualifiers\nhttps://typescript-eslint.io/rules/no-unnecessary-qualifier"
    },
    "@typescript-eslint/no-unnecessary-template-expression": {
      "description": "Disallow unnecessary template expressions\nhttps://typescript-eslint.io/rules/no-unnecessary-template-expression"
    },
    "@typescript-eslint/no-unnecessary-type-arguments": {
      "description": "Disallow type arguments that are equal to the default\nhttps://typescript-eslint.io/rules/no-unnecessary-type-arguments"
    },
    "@typescript-eslint/no-unnecessary-type-assertion": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "typesToIgnore": {
                  "description": "A list of type names to ignore.",
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          ]
        }
      ],
      "description": "Disallow type assertions that do not change the type of an expression\nhttps://typescript-eslint.io/rules/no-unnecessary-type-assertion"
    },
    "@typescript-eslint/no-unnecessary-type-constraint": {
      "description": "Disallow unnecessary constraints on generic types\nhttps://typescript-eslint.io/rules/no-unnecessary-type-constraint"
    },
    "@typescript-eslint/no-unsafe-argument": {
      "description": "Disallow calling a function with a value with type `any`\nhttps://typescript-eslint.io/rules/no-unsafe-argument"
    },
    "@typescript-eslint/no-unsafe-assignment": {
      "description": "Disallow assigning a value with type `any` to variables and properties\nhttps://typescript-eslint.io/rules/no-unsafe-assignment"
    },
    "@typescript-eslint/no-unsafe-call": {
      "description": "Disallow calling a value with type `any`\nhttps://typescript-eslint.io/rules/no-unsafe-call"
    },
    "@typescript-eslint/no-unsafe-declaration-merging": {
      "description": "Disallow unsafe declaration merging\nhttps://typescript-eslint.io/rules/no-unsafe-declaration-merging"
    },
    "@typescript-eslint/no-unsafe-enum-comparison": {
      "description": "Disallow comparing an enum value with a non-enum value\nhttps://typescript-eslint.io/rules/no-unsafe-enum-comparison"
    },
    "@typescript-eslint/no-unsafe-member-access": {
      "description": "Disallow member access on a value with type `any`\nhttps://typescript-eslint.io/rules/no-unsafe-member-access"
    },
    "@typescript-eslint/no-unsafe-return": {
      "description": "Disallow returning a value with type `any` from a function\nhttps://typescript-eslint.io/rules/no-unsafe-return"
    },
    "@typescript-eslint/no-unsafe-unary-minus": {
      "description": "Require unary negation to take a number\nhttps://typescript-eslint.io/rules/no-unsafe-unary-minus"
    },
    "@typescript-eslint/no-unused-expressions": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allowShortCircuit": {
                  "type": "boolean",
                  "default": false
                },
                "allowTernary": {
                  "type": "boolean",
                  "default": false
                },
                "allowTaggedTemplates": {
                  "type": "boolean",
                  "default": false
                },
                "enforceForJSX": {
                  "type": "boolean",
                  "default": false
                }
              }
            }
          ]
        }
      ],
      "description": "Disallow unused expressions\nhttps://typescript-eslint.io/rules/no-unused-expressions"
    },
    "@typescript-eslint/no-unused-vars": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "Disallow unused variables\nhttps://typescript-eslint.io/rules/no-unused-vars"
    },
    "@typescript-eslint/no-use-before-define": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "Disallow the use of variables before they are defined\nhttps://typescript-eslint.io/rules/no-use-before-define"
    },
    "@typescript-eslint/no-useless-constructor": {
      "description": "Disallow unnecessary constructors\nhttps://typescript-eslint.io/rules/no-useless-constructor"
    },
    "@typescript-eslint/no-useless-empty-export": {
      "description": "Disallow empty exports that don't change anything in a module file\nhttps://typescript-eslint.io/rules/no-useless-empty-export"
    },
    "@typescript-eslint/no-useless-template-literals": {
      "description": "Disallow unnecessary template expressions\nhttps://typescript-eslint.io/rules/no-useless-template-literals"
    },
    "@typescript-eslint/no-var-requires": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allow": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Patterns of import paths to allow requiring from."
                }
              }
            }
          ]
        }
      ],
      "description": "Disallow `require` statements except in import statements\nhttps://typescript-eslint.io/rules/no-var-requires"
    },
    "@typescript-eslint/non-nullable-type-assertion-style": {
      "description": "Enforce non-null assertions over explicit type casts\nhttps://typescript-eslint.io/rules/non-nullable-type-assertion-style"
    },
    "@typescript-eslint/object-curly-spacing": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "Enforce consistent spacing inside braces\nhttps://typescript-eslint.io/rules/object-curly-spacing"
    },
    "@typescript-eslint/only-throw-error": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allowThrowingAny": {
                  "type": "boolean"
                },
                "allowThrowingUnknown": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Disallow throwing non-`Error` values as exceptions\nhttps://typescript-eslint.io/rules/only-throw-error"
    },
    "@typescript-eslint/padding-line-between-statements": {
      "description": "Require or disallow padding lines between statements\nhttps://typescript-eslint.io/rules/padding-line-between-statements"
    },
    "@typescript-eslint/parameter-properties": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allow": {
                  "type": "array",
                  "items": {}
                },
                "prefer": {
                  "type": "string",
                  "enum": ["class-property", "parameter-property"]
                }
              }
            }
          ]
        }
      ],
      "description": "Require or disallow parameter properties in class constructors\nhttps://typescript-eslint.io/rules/parameter-properties"
    },
    "@typescript-eslint/prefer-as-const": {
      "description": "Enforce the use of `as const` over literal type\nhttps://typescript-eslint.io/rules/prefer-as-const"
    },
    "@typescript-eslint/prefer-destructuring": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "Require destructuring from arrays and/or objects\nhttps://typescript-eslint.io/rules/prefer-destructuring"
    },
    "@typescript-eslint/prefer-enum-initializers": {
      "description": "Require each enum member value to be explicitly initialized\nhttps://typescript-eslint.io/rules/prefer-enum-initializers"
    },
    "@typescript-eslint/prefer-find": {
      "description": "Enforce the use of Array.prototype.find() over Array.prototype.filter() followed by [0] when looking for a single result\nhttps://typescript-eslint.io/rules/prefer-find"
    },
    "@typescript-eslint/prefer-for-of": {
      "description": "Enforce the use of `for-of` loop over the standard `for` loop where possible\nhttps://typescript-eslint.io/rules/prefer-for-of"
    },
    "@typescript-eslint/prefer-function-type": {
      "description": "Enforce using function types instead of interfaces with call signatures\nhttps://typescript-eslint.io/rules/prefer-function-type"
    },
    "@typescript-eslint/prefer-includes": {
      "description": "Enforce `includes` method over `indexOf` method\nhttps://typescript-eslint.io/rules/prefer-includes"
    },
    "@typescript-eslint/prefer-literal-enum-member": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allowBitwiseExpressions": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Require all enum members to be literal values\nhttps://typescript-eslint.io/rules/prefer-literal-enum-member"
    },
    "@typescript-eslint/prefer-namespace-keyword": {
      "description": "Require using `namespace` keyword over `module` keyword to declare custom TypeScript modules\nhttps://typescript-eslint.io/rules/prefer-namespace-keyword"
    },
    "@typescript-eslint/prefer-nullish-coalescing": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing": {
                  "type": "boolean"
                },
                "ignoreConditionalTests": {
                  "type": "boolean"
                },
                "ignoreMixedLogicalExpressions": {
                  "type": "boolean"
                },
                "ignorePrimitives": {
                  "oneOf": [
                    {
                      "type": "object",
                      "properties": {
                        "bigint": {
                          "type": "boolean"
                        },
                        "boolean": {
                          "type": "boolean"
                        },
                        "number": {
                          "type": "boolean"
                        },
                        "string": {
                          "type": "boolean"
                        }
                      }
                    },
                    {
                      "type": "boolean",
                      "enum": [true]
                    }
                  ]
                },
                "ignoreTernaryTests": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Enforce using the nullish coalescing operator instead of logical assignments or chaining\nhttps://typescript-eslint.io/rules/prefer-nullish-coalescing"
    },
    "@typescript-eslint/prefer-optional-chain": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "checkAny": {
                  "type": "boolean",
                  "description": "Check operands that are typed as `any` when inspecting \"loose boolean\" operands."
                },
                "checkUnknown": {
                  "type": "boolean",
                  "description": "Check operands that are typed as `unknown` when inspecting \"loose boolean\" operands."
                },
                "checkString": {
                  "type": "boolean",
                  "description": "Check operands that are typed as `string` when inspecting \"loose boolean\" operands."
                },
                "checkNumber": {
                  "type": "boolean",
                  "description": "Check operands that are typed as `number` when inspecting \"loose boolean\" operands."
                },
                "checkBoolean": {
                  "type": "boolean",
                  "description": "Check operands that are typed as `boolean` when inspecting \"loose boolean\" operands."
                },
                "checkBigInt": {
                  "type": "boolean",
                  "description": "Check operands that are typed as `bigint` when inspecting \"loose boolean\" operands."
                },
                "requireNullish": {
                  "type": "boolean",
                  "description": "Skip operands that are not typed with `null` and/or `undefined` when inspecting \"loose boolean\" operands."
                },
                "allowPotentiallyUnsafeFixesThatModifyTheReturnTypeIKnowWhatImDoing": {
                  "type": "boolean",
                  "description": "Allow autofixers that will change the return type of the expression. This option is considered unsafe as it may break the build."
                }
              }
            }
          ]
        }
      ],
      "description": "Enforce using concise optional chain expressions instead of chained logical ands, negated logical ors, or empty objects\nhttps://typescript-eslint.io/rules/prefer-optional-chain"
    },
    "@typescript-eslint/prefer-promise-reject-errors": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allowEmptyReject": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Require using Error objects as Promise rejection reasons\nhttps://typescript-eslint.io/rules/prefer-promise-reject-errors"
    },
    "@typescript-eslint/prefer-readonly": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "onlyInlineLambdas": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Require private members to be marked as `readonly` if they're never modified outside of the constructor\nhttps://typescript-eslint.io/rules/prefer-readonly"
    },
    "@typescript-eslint/prefer-readonly-parameter-types": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allow": {
                  "type": "array",
                  "items": {
                    "oneOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "from": {
                            "type": "string",
                            "enum": ["file"]
                          },
                          "name": {
                            "oneOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "minItems": 1,
                                "uniqueItems": true,
                                "items": {
                                  "type": "string"
                                }
                              }
                            ]
                          },
                          "path": {
                            "type": "string"
                          }
                        },
                        "required": ["from", "name"]
                      },
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "from": {
                            "type": "string",
                            "enum": ["lib"]
                          },
                          "name": {
                            "oneOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "minItems": 1,
                                "uniqueItems": true,
                                "items": {
                                  "type": "string"
                                }
                              }
                            ]
                          }
                        },
                        "required": ["from", "name"]
                      },
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "from": {
                            "type": "string",
                            "enum": ["package"]
                          },
                          "name": {
                            "oneOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "minItems": 1,
                                "uniqueItems": true,
                                "items": {
                                  "type": "string"
                                }
                              }
                            ]
                          },
                          "package": {
                            "type": "string"
                          }
                        },
                        "required": ["from", "name", "package"]
                      }
                    ]
                  }
                },
                "checkParameterProperties": {
                  "type": "boolean"
                },
                "ignoreInferredTypes": {
                  "type": "boolean"
                },
                "treatMethodsAsReadonly": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Require function parameters to be typed as `readonly` to prevent accidental mutation of inputs\nhttps://typescript-eslint.io/rules/prefer-readonly-parameter-types"
    },
    "@typescript-eslint/prefer-reduce-type-parameter": {
      "description": "Enforce using type parameter when calling `Array#reduce` instead of casting\nhttps://typescript-eslint.io/rules/prefer-reduce-type-parameter"
    },
    "@typescript-eslint/prefer-regexp-exec": {
      "description": "Enforce `RegExp#exec` over `String#match` if no global flag is provided\nhttps://typescript-eslint.io/rules/prefer-regexp-exec"
    },
    "@typescript-eslint/prefer-return-this-type": {
      "description": "Enforce that `this` is used when only `this` type is returned\nhttps://typescript-eslint.io/rules/prefer-return-this-type"
    },
    "@typescript-eslint/prefer-string-starts-ends-with": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allowSingleElementEquality": {
                  "description": "Whether to allow equality checks against the first or last element of a string.",
                  "enum": ["always", "never"],
                  "type": "string"
                }
              }
            }
          ]
        }
      ],
      "description": "Enforce using `String#startsWith` and `String#endsWith` over other equivalent methods of checking substrings\nhttps://typescript-eslint.io/rules/prefer-string-starts-ends-with"
    },
    "@typescript-eslint/prefer-ts-expect-error": {
      "description": "Enforce using `@ts-expect-error` over `@ts-ignore`\nhttps://typescript-eslint.io/rules/prefer-ts-expect-error"
    },
    "@typescript-eslint/promise-function-async": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allowAny": {
                  "description": "Whether to consider `any` and `unknown` to be Promises.",
                  "type": "boolean"
                },
                "allowedPromiseNames": {
                  "description": "Any extra names of classes or interfaces to be considered Promises.",
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "checkArrowFunctions": {
                  "type": "boolean"
                },
                "checkFunctionDeclarations": {
                  "type": "boolean"
                },
                "checkFunctionExpressions": {
                  "type": "boolean"
                },
                "checkMethodDeclarations": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Require any function or method that returns a Promise to be marked async\nhttps://typescript-eslint.io/rules/promise-function-async"
    },
    "@typescript-eslint/quotes": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 3,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "description": "String option: \"double\" (default) requires the use of double quotes wherever possible; \"single\" requires the use of single quotes wherever possible; \"backtick\" requires the use of backticks wherever possible",
              "type": "string",
              "enum": ["double", "single", "backtick"]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "avoidEscape": {
                  "description": "allows strings to use single-quotes or double-quotes so long as the string contains a quote that would have to be escaped otherwise",
                  "type": "boolean"
                },
                "allowTemplateLiterals": {
                  "description": "allows strings to use backticks",
                  "type": "boolean"
                },
                "avoid-escape": {
                  "description": "Deprecated: The object property avoid-escape is deprecated; please use the object property avoidEscape instead.",
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Enforce the consistent use of either backticks, double, or single quotes\nhttps://typescript-eslint.io/rules/quotes"
    },
    "@typescript-eslint/require-array-sort-compare": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "ignoreStringArrays": {
                  "description": "Whether to ignore arrays in which all elements are strings.",
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Require `Array#sort` and `Array#toSorted` calls to always provide a `compareFunction`\nhttps://typescript-eslint.io/rules/require-array-sort-compare"
    },
    "@typescript-eslint/require-await": {
      "description": "Disallow async functions which do not return promises and have no `await` expression\nhttps://typescript-eslint.io/rules/require-await"
    },
    "@typescript-eslint/restrict-plus-operands": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allowAny": {
                  "description": "Whether to allow `any` typed values.",
                  "type": "boolean"
                },
                "allowBoolean": {
                  "description": "Whether to allow `boolean` typed values.",
                  "type": "boolean"
                },
                "allowNullish": {
                  "description": "Whether to allow potentially `null` or `undefined` typed values.",
                  "type": "boolean"
                },
                "allowNumberAndString": {
                  "description": "Whether to allow `bigint`/`number` typed values and `string` typed values to be added together.",
                  "type": "boolean"
                },
                "allowRegExp": {
                  "description": "Whether to allow `regexp` typed values.",
                  "type": "boolean"
                },
                "skipCompoundAssignments": {
                  "description": "Whether to skip compound assignments such as `+=`.",
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Require both operands of addition to be the same type and be `bigint`, `number`, or `string`\nhttps://typescript-eslint.io/rules/restrict-plus-operands"
    },
    "@typescript-eslint/restrict-template-expressions": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allowAny": {
                  "description": "Whether to allow `any` typed values in template expressions.",
                  "type": "boolean"
                },
                "allowArray": {
                  "description": "Whether to allow `array` typed values in template expressions.",
                  "type": "boolean"
                },
                "allowBoolean": {
                  "description": "Whether to allow `boolean` typed values in template expressions.",
                  "type": "boolean"
                },
                "allowNullish": {
                  "description": "Whether to allow `nullish` typed values in template expressions.",
                  "type": "boolean"
                },
                "allowNumber": {
                  "description": "Whether to allow `number` typed values in template expressions.",
                  "type": "boolean"
                },
                "allowRegExp": {
                  "description": "Whether to allow `regexp` typed values in template expressions.",
                  "type": "boolean"
                },
                "allowNever": {
                  "description": "Whether to allow `never` typed values in template expressions.",
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Enforce template literal expressions to be of `string` type\nhttps://typescript-eslint.io/rules/restrict-template-expressions"
    },
    "@typescript-eslint/return-await": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "oneOf": [
                {
                  "const": "never",
                  "description": "Disallows awaiting any returned promises.",
                  "deprecated": true
                },
                {
                  "const": "error-handling-correctness-only",
                  "description": "In error-handling contexts, the rule enforces that returned promises must be awaited. In ordinary contexts, the rule does not enforce any particular behavior around whether returned promises are awaited."
                },
                {
                  "const": "in-try-catch",
                  "description": "In error-handling contexts, the rule enforces that returned promises must be awaited. In ordinary contexts, the rule enforces that returned promises must not be awaited."
                },
                {
                  "const": "always",
                  "description": "Requires that all returned promises be awaited."
                }
              ]
            }
          ]
        }
      ],
      "description": "Enforce consistent awaiting of returned promises\nhttps://typescript-eslint.io/rules/return-await"
    },
    "@typescript-eslint/semi": {
      "description": "Require or disallow semicolons instead of ASI\nhttps://typescript-eslint.io/rules/semi"
    },
    "@typescript-eslint/sort-type-constituents": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "checkIntersections": {
                  "description": "Whether to check intersection types.",
                  "type": "boolean"
                },
                "checkUnions": {
                  "description": "Whether to check union types.",
                  "type": "boolean"
                },
                "caseSensitive": {
                  "description": "Whether to sort using case sensitive sorting.",
                  "type": "boolean"
                },
                "groupOrder": {
                  "description": "Ordering of the groups.",
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "conditional",
                      "function",
                      "import",
                      "intersection",
                      "keyword",
                      "nullish",
                      "literal",
                      "named",
                      "object",
                      "operator",
                      "tuple",
                      "union"
                    ]
                  }
                }
              }
            }
          ]
        }
      ],
      "description": "Enforce constituents of a type union/intersection to be sorted alphabetically\nhttps://typescript-eslint.io/rules/sort-type-constituents"
    },
    "@typescript-eslint/space-before-blocks": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "Enforce consistent spacing before blocks\nhttps://typescript-eslint.io/rules/space-before-blocks"
    },
    "@typescript-eslint/space-before-function-paren": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          ]
        }
      ],
      "description": "Enforce consistent spacing before function parenthesis\nhttps://typescript-eslint.io/rules/space-before-function-paren"
    },
    "@typescript-eslint/space-infix-ops": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "int32Hint": {
                  "type": "boolean",
                  "default": false
                }
              }
            }
          ]
        }
      ],
      "description": "Require spacing around infix operators\nhttps://typescript-eslint.io/rules/space-infix-ops"
    },
    "@typescript-eslint/strict-boolean-expressions": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allowString": {
                  "type": "boolean"
                },
                "allowNumber": {
                  "type": "boolean"
                },
                "allowNullableObject": {
                  "type": "boolean"
                },
                "allowNullableBoolean": {
                  "type": "boolean"
                },
                "allowNullableString": {
                  "type": "boolean"
                },
                "allowNullableNumber": {
                  "type": "boolean"
                },
                "allowNullableEnum": {
                  "type": "boolean"
                },
                "allowAny": {
                  "type": "boolean"
                },
                "allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Disallow certain types in boolean expressions\nhttps://typescript-eslint.io/rules/strict-boolean-expressions"
    },
    "@typescript-eslint/switch-exhaustiveness-check": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "allowDefaultCaseForExhaustiveSwitch": {
                  "description": "If 'true', allow 'default' cases on switch statements with exhaustive cases.",
                  "type": "boolean"
                },
                "requireDefaultForNonUnion": {
                  "description": "If 'true', require a 'default' clause for switches on non-union types.",
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Require switch-case statements to be exhaustive\nhttps://typescript-eslint.io/rules/switch-exhaustiveness-check"
    },
    "@typescript-eslint/triple-slash-reference": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "lib": {
                  "type": "string",
                  "enum": ["always", "never"]
                },
                "path": {
                  "type": "string",
                  "enum": ["always", "never"]
                },
                "types": {
                  "type": "string",
                  "enum": ["always", "never", "prefer-import"]
                }
              }
            }
          ]
        }
      ],
      "description": "Disallow certain triple slash directives in favor of ES6-style import declarations\nhttps://typescript-eslint.io/rules/triple-slash-reference"
    },
    "@typescript-eslint/type-annotation-spacing": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "before": {
                  "type": "boolean"
                },
                "after": {
                  "type": "boolean"
                },
                "overrides": {
                  "type": "object",
                  "properties": {
                    "colon": {},
                    "arrow": {},
                    "variable": {},
                    "parameter": {},
                    "property": {},
                    "returnType": {}
                  },
                  "additionalProperties": false
                }
              }
            }
          ]
        }
      ],
      "description": "Require consistent spacing around type annotations\nhttps://typescript-eslint.io/rules/type-annotation-spacing"
    },
    "@typescript-eslint/typedef": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "arrayDestructuring": {
                  "type": "boolean"
                },
                "arrowParameter": {
                  "type": "boolean"
                },
                "memberVariableDeclaration": {
                  "type": "boolean"
                },
                "objectDestructuring": {
                  "type": "boolean"
                },
                "parameter": {
                  "type": "boolean"
                },
                "propertyDeclaration": {
                  "type": "boolean"
                },
                "variableDeclaration": {
                  "type": "boolean"
                },
                "variableDeclarationIgnoreFunction": {
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Require type annotations in certain places\nhttps://typescript-eslint.io/rules/typedef"
    },
    "@typescript-eslint/unbound-method": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "ignoreStatic": {
                  "description": "Whether to skip checking whether `static` methods are correctly bound.",
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Enforce unbound methods are called with their expected scope\nhttps://typescript-eslint.io/rules/unbound-method"
    },
    "@typescript-eslint/unified-signatures": {
      "oneOf": [
        {
          "$ref": "#/definitions/ruleNumber"
        },
        {
          "$ref": "#/definitions/ruleString"
        },
        {
          "minItems": 2,
          "maxItems": 2,
          "type": "array",
          "items": [
            {
              "oneOf": [
                {
                  "$ref": "#/definitions/ruleNumber"
                },
                {
                  "$ref": "#/definitions/ruleString"
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "ignoreDifferentlyNamedParameters": {
                  "description": "Whether two parameters with different names at the same index should be considered different even if their types are the same.",
                  "type": "boolean"
                }
              }
            }
          ]
        }
      ],
      "description": "Disallow two overloads that could be unified into one with a union or an optional/rest parameter\nhttps://typescript-eslint.io/rules/unified-signatures"
    },
    "@typescript-eslint/use-unknown-in-catch-callback-variable": {
      "description": "Enforce typing arguments in `.catch()` callbacks as `unknown`\nhttps://typescript-eslint.io/rules/use-unknown-in-catch-callback-variable"
    }
  }
}
