{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://json.schemastore.org/luaurc.json",
  "additionalProperties": false,
  "type": "object",
  "properties": {
    "languageMode": {
      "type": "string",
      "enum": ["strict", "nonstrict", "nocheck"]
    },
    "lintErrors": { "type": "boolean" },
    "typeErrors": { "type": "boolean" },
    "globals": {
      "type": "array",
      "items": { "type": "string", "pattern": "^[a-zA-Z_]\\w*" }
    },
    "aliases": {
      "type": "object",
      "additionalProperties": false,
      "patternProperties": {
        "^(?!\\.{1,2}$)(?!.*\\/)[a-zA-Z0-9\\-\\._]+$": {
          "type": "string"
        }
      }
    },
    "lint": {
      "$comment": "source: https://github.com/luau-lang/luau/blob/master/Config/include/Luau/LinterConfig.h",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "*": { "type": "boolean" },
        "UnknownGlobal": { "type": "boolean" },
        "DeprecatedGlobal": { "type": "boolean" },
        "GlobalUsedAsLocal": { "type": "boolean" },
        "LocalShadow": { "type": "boolean" },
        "SameLineStatement": { "type": "boolean" },
        "MultiLineStatement": { "type": "boolean" },
        "LocalUnused": { "type": "boolean" },
        "FunctionUnused": { "type": "boolean" },
        "ImportUnused": { "type": "boolean" },
        "BuiltinGlobalWrite": { "type": "boolean" },
        "PlaceholderRead": { "type": "boolean" },
        "UnreachableCode": { "type": "boolean" },
        "UnknownType": { "type": "boolean" },
        "ForRange": { "type": "boolean" },
        "UnbalancedAssignment": { "type": "boolean" },
        "ImplicitReturn": { "type": "boolean" },
        "DuplicateLocal": { "type": "boolean" },
        "FormatString": { "type": "boolean" },
        "TableLiteral": { "type": "boolean" },
        "UninitializedLocal": { "type": "boolean" },
        "DuplicateFunction": { "type": "boolean" },
        "DeprecatedApi": { "type": "boolean" },
        "TableOperations": { "type": "boolean" },
        "DuplicateCondition": { "type": "boolean" },
        "MisleadingAndOr": { "type": "boolean" },
        "CommentDirective": { "type": "boolean" },
        "IntegerParsing": { "type": "boolean" },
        "ComparisonPrecedence": { "type": "boolean" },
        "RedundantNativeAttribute": { "type": "boolean" }
      }
    }
  }
}
