{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "additionalProperties": false,
  "required": [ "rules" ],
  "properties": {
    "rules": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "require-author",
        "require-description",
        "require-engines",
        "require-license",
        "require-name",
        "require-repository",
        "require-version",
        "require-bugs",
        "require-homepage",
        "require-keywords",
        "bin-type",
        "config-type",
        "description-type",
        "devDependencies-type",
        "directories-type",
        "engines-type",
        "files-type",
        "homepage-type",
        "keywords-type",
        "license-type",
        "main-type",
        "man-type",
        "name-type",
        "preferGlobal-type",
        "private-type",
        "repository-type",
        "scripts-type",
        "version-type",
        "valid-values-author",
        "valid-values-private",
        "no-restricted-dependencies",
        "no-restricted-pre-release-dependencies",
        "no-restricted-invalid-devDependencies",
        "no-restricted-pre-release-devDependencies",
        "name-format",
        "version-format"
      ],
      "properties": {
        "require-author": { "enum": [ "off", "warning", "error" ] },
        "require-description": { "enum": [ "off", "warning", "error" ] },
        "require-engines": { "enum": [ "off", "warning", "error" ] },
        "require-license": { "enum": [ "off", "warning", "error" ] },
        "require-name": { "enum": [ "off", "warning", "error" ] },
        "require-repository": { "enum": [ "off", "warning", "error" ] },
        "require-version": { "enum": [ "off", "warning", "error" ] },
        "require-bugs": { "enum": [ "off", "warning", "error" ] },
        "require-homepage": { "enum": [ "off", "warning", "error" ] },
        "require-keywords": { "enum": [ "off", "warning", "error" ] },
        "bin-type": { "enum": [ "off", "warning", "error" ] },
        "config-type": { "enum": [ "off", "warning", "error" ] },
        "description-type": { "enum": [ "off", "warning", "error" ] },
        "devDependencies-type": { "enum": [ "off", "warning", "error" ] },
        "directories-type": { "enum": [ "off", "warning", "error" ] },
        "engines-type": { "enum": [ "off", "warning", "error" ] },
        "files-type": { "enum": [ "off", "warning", "error" ] },
        "homepage-type": { "enum": [ "off", "warning", "error" ] },
        "keywords-type": { "enum": [ "off", "warning", "error" ] },
        "license-type": { "enum": [ "off", "warning", "error" ] },
        "main-type": { "enum": [ "off", "warning", "error" ] },
        "man-type": { "enum": [ "off", "warning", "error" ] },
        "name-type": { "enum": [ "off", "warning", "error" ] },
        "preferGlobal-type": { "enum": [ "off", "warning", "error" ] },
        "private-type": { "enum": [ "off", "warning", "error" ] },
        "repository-type": { "enum": [ "off", "warning", "error" ] },
        "scripts-type": { "enum": [ "off", "warning", "error" ] },
        "version-type": { "enum": [ "off", "warning", "error" ] },


        "valid-values-author": {
          "type": "array",
          "minItems": 2,
          "maxItems": 2,
          "prefixItems": [
            { "enum": [ "off", "warning", "error" ] },
            {
              "type": "array",
              "items": { "type": "string" }
            }
          ]
        },
        "valid-values-private": {
          "type": "array",
          "minItems": 2,
          "maxItems": 2,
          "prefixItems": [
            { "enum": [ "off", "warning", "error" ] },
            {
              "type": "array",
              "items": { "type": "boolean" }
            }
          ]
        },
        "no-restricted-dependencies": {
          "type": "array",
          "minItems": 2,
          "maxItems": 2,
          "prefixItems": [
            { "enum": [ "off", "warning", "error" ] },
            {
              "type": "array",
              "items": { "type": "string" }
            }
          ]
        },
        "no-restricted-pre-release-dependencies": {
          "type": "array",
          "minItems": 2,
          "maxItems": 2,
          "prefixItems": [
            { "enum": [ "off", "warning", "error" ] },
            {
              "type": "array",
              "items": { "type": "string" }
            }
          ]
        },
        "no-restricted-invalid-devDependencies": {
          "type": "array",
          "minItems": 2,
          "maxItems": 2,
          "prefixItems": [
            { "enum": [ "off", "warning", "error" ] },
            {
              "type": "array",
              "items": { "type": "string" }
            }
          ]
        },
        "no-restricted-pre-release-devDependencies": {
          "type": "array",
          "minItems": 2,
          "maxItems": 2,
          "prefixItems": [
            { "enum": [ "off", "warning", "error" ] },
            {
              "type": "array",
              "items": { "type": "string" }
            }
          ]
        },
        "name-format": { "enum": [ "off", "warning", "error" ] },
        "version-format": { "enum": [ "off", "warning", "error" ] }
      }
    }
  }
}
