{
  "extends": ["tslint:recommended", "tslint-microsoft-contrib/recommended"],
  "rules": {
    "no-unused-variable": true,
    "no-relative-imports": [false, "MS rule. Asinine rule."],
    "export-name": [false, "MS rule. This rule is too strict."],
    "function-name": [false, "MS rule. This rule is too strict."],
    "prefer-type-cast": [false,
                         "MS rule. We want to use 'as', and it contradicts ",
                         "no-angle-bracket-type-assertion."],
    "no-function-expression": [false,
                               "MS rule. Duplicates only-arrow-functions."],
    "no-for-in": [false, "MS rule. Duplicates forin."],
    "no-single-line-block-comment": [false, "MS rule."],
    "member-ordering": [false,
                        "Off because it forces moving apart code that ",
                        "is logically related to one another"],
    "no-string-based-set-timeout": [false,
                                    "This rule is buggy, see MS contrib #355."],
    "chai-vague-errors": [
      false,
      "It seems to me this rule has gotten stricter and stricter over time.",
      "While I agree with the general sentiment, it has gotten to the point of",
      "utter uselessness now. Most of my Mocha tests are narrow enough that the",
      "test title tells you what the problem is. Screaming about vague chai",
      "errors is not helpful."
    ],
    "align": [
      true,
      "parameters",
      "statements"
    ],
    "array-type": false,
    "arrow-parens": [true, "ban-single-arg-parens"],
    "max-line-length": [true, 80],
    "one-line": false,
    "interface-name": false,
    "member-access": false,
    "max-classes-per-file": false,
    "object-literal-sort-keys": false,
    "interface-over-type-literal": false,
    "quotemark": [true, "double"],
    "semicolon": [true, "always"],
    "trailing-comma": [true, {"multiline": "always", "singleline": "never"}],
    "typedef": [true, "call-signature", "parameter",
                "property-declaration", "member-variable-declaration"],
    "variable-name": [true, "check-format", "allow-leading-underscore",
                      "allow-trailing-underscore", "ban-keywords"],
    "no-angle-bracket-type-assertion": true,
    "jsdoc-format": true,
    "no-this-assignment": [true, {"allow-destructuring": true }],
    "no-object-literal-type-assertion": [true, { "allow-arguments": true }]
  }
}
