{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://json.schemastore.org/mocharc",
  "additionalProperties": true,
  "definitions": {
    "bool": {
      "type": "boolean"
    },
    "int": {
      "type": "integer",
      "minimum": 0
    },
    "string": {
      "type": "string"
    },
    "string-array": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    }
  },
  "description": "A JSON schema describing a .mocharc.[json|yml|yaml] file",
  "properties": {
    "allow-uncaught": {
      "$ref": "#/definitions/bool"
    },
    "async-only": {
      "$ref": "#/definitions/bool"
    },
    "bail": {
      "$ref": "#/definitions/bool"
    },
    "check-leaks": {
      "$ref": "#/definitions/bool"
    },
    "delay": {
      "$ref": "#/definitions/bool"
    },
    "exit": {
      "$ref": "#/definitions/bool"
    },
    "forbid-only": {
      "$ref": "#/definitions/bool"
    },
    "forbid-pending": {
      "$ref": "#/definitions/bool"
    },
    "global": {
      "$ref": "#/definitions/string-array"
    },
    "jobs": {
      "$ref": "#/definitions/int"
    },
    "parallel": {
      "$ref": "#/definitions/bool"
    },
    "retries": {
      "$ref": "#/definitions/int"
    },
    "slow": {
      "$ref": "#/definitions/int"
    },
    "timeout": {
      "$ref": "#/definitions/int"
    },
    "ui": {
      "$ref": "#/definitions/string"
    },
    "color": {
      "$ref": "#/definitions/bool"
    },
    "diff": {
      "$ref": "#/definitions/bool"
    },
    "full-trace": {
      "$ref": "#/definitions/bool"
    },
    "growl": {
      "$ref": "#/definitions/bool"
    },
    "inline-diffs": {
      "$ref": "#/definitions/bool"
    },
    "reporter": {
      "$ref": "#/definitions/string"
    },
    "reporter-option": {
      "$ref": "#/definitions/string-array"
    },
    "config": {
      "$ref": "#/definitions/string"
    },
    "package": {
      "$ref": "#/definitions/string"
    },
    "extension": {
      "$ref": "#/definitions/string-array"
    },
    "file": {
      "$ref": "#/definitions/string-array"
    },
    "ignore": {
      "$ref": "#/definitions/string-array"
    },
    "recursive": {
      "$ref": "#/definitions/bool"
    },
    "require": {
      "$ref": "#/definitions/string-array"
    },
    "sort": {
      "$ref": "#/definitions/bool"
    },
    "watch": {
      "$ref": "#/definitions/bool"
    },
    "watch-files": {
      "$ref": "#/definitions/string-array"
    },
    "watch-ignore": {
      "$ref": "#/definitions/string-array"
    },
    "fgrep": {
      "$ref": "#/definitions/string"
    },
    "grep": {
      "$ref": "#/definitions/string"
    },
    "invert": {
      "$ref": "#/definitions/bool"
    },
    "spec": {
      "$ref": "#/definitions/string-array"
    },
    "enable-source-maps": {
      "$ref": "#/definitions/bool"
    }
  },
  "title": "Mocha JS Configuration File Schema",
  "type": "object"
}
