{
  "$id": "template.json",
  "type": "object",
  "properties": {
    "path": {
      "type": "string",
      "default": "./"
    },
    "engines": {
      "type": "string"
    },
    "rules": {
      "type": "array",
      "items": {
        "$ref": "rule.json"
      },
      "default": []
    },
    "hooks": {
      "type": "object",
      "propertyNames": {
        "enum": [
          "initialized",
          "updated",
          "upgraded",
          "checked",
          "rendered"
        ]
      },
      "patternProperties": {
        ".*": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "instanceof": "Function"
            }
          ]
        }
      }
    },
    "questions": {
      "type": "array",
      "items": {
        "$ref": "question.json"
      }
    }
  }
}
