{
    "defaultSeverity": "error",
    "jsRules": {},
    "rules": {
        "adjacent-overload-signatures": true,
        "align": true,
        "array-type": false, //too cumbersome, no correctness gain
        "arrow-parens": true,
        "arrow-return-shorthand": false, //too terse
        "await-promise": [
            true,
            "Thenable",
            "Bluebird",
            "IExposedPromise",
            "PromiseConstructor",
            "Promise",
            "PromiseLike",
            "bluebird"
        ],
        "ban-comma-operator": true,
        "ban": [
            true,
            {
                "name": [
                    "Function",
                    "length"
                ],
                "message": "no way, jose"
            }
        ],
        "ban-types": false,
        "binary-expression-operand-order": false,
        "callable-types": true,
        "class-name": false,
        "comment-format": true,
        "completed-docs": false,
        "curly": true,
        "cyclomatic-complexity": [
            true,
            100
        ],
        "deprecation": true,
        "encoding": true,
        "eofline": true,
        "file-header": false,
        "forin": true,
        "import-blacklist": false,
        "import-spacing": true,
        "indent": [
            false, //no autofix
            "tabs"
        ],
        "interface-name": false,
        "interface-over-type-literal": false,
        "jsdoc-format": false,
        "label-position": true,
        "linebreak-style": false,
        ////////////////////////////  above this line, few spam
        "match-default-export-name": false, //hard to know exactly the default name v15
        "max-classes-per-file": [
            true,
            20
        ],
        "max-file-line-count": [
            false,
            1200
        ],
        "max-line-length": [
            true,
            1000
        ],
        "member-access": false,
        "member-ordering": false,
        "new-parens": true,
        "newline-before-return": false, //autofix doesn't seem to work
        "newline-per-chained-call": false,
        "no-angle-bracket-type-assertion": false,
        "no-any": false,
        "no-arg": true,
        "no-bitwise": true,
        "no-boolean-literal-compare": false, //! change in v15, autofix, make sure non-bools can't be compared first
        "no-conditional-assignment": true,
        "no-consecutive-blank-lines": [
            true,
            2
        ], ////autofix
        "no-console": true,
        "no-construct": true,
        "no-debugger": true,
        "no-default-export": true, ////default export discovery is hard.
        "no-duplicate-imports": false, //// doesn't work great with es6 modules that have no default export
        "no-duplicate-super": true,
        "no-duplicate-switch-case": true,
        "no-duplicate-variable": true,
        "no-dynamic-delete": true,
        "no-empty": {
            "options": "allow-empty-catch"
        },
        "no-empty-interface": true,
        "no-eval": true,
        "no-floating-promises": true,
        "no-for-in-array": true,
        "no-implicit-dependencies": true,
        "no-import-side-effect": true,
        "no-inferrable-types": [
            false,
            {
                "options": [
                    "ignore-params"
                ]
            }
        ],
        "no-inferred-empty-object-type": true,
        "no-internal-module": true,
        "no-invalid-template-strings": true,
        "no-invalid-this": true,
        "no-irregular-whitespace": true,
        "no-magic-numbers": false, ////too verbose and annoying
        "no-mergeable-namespace": true,
        "no-misused-new": true,
        "no-namespace": false, ////flexibility is nice for small modules
        "no-non-null-assertion": true,
        "no-null-keyword": false,
        "no-object-literal-type-assertion": true,
        "no-parameter-properties": false,
        "no-parameter-reassignment": false, //painful
        "no-redundant-jsdoc": false, //removes useful jsdoc stuff like @default
        "no-reference": true,
        "no-reference-import": true,
        "no-require-imports": false,
        "no-return-await": true,
        "no-shadowed-variable": true,
        "no-sparse-arrays": true,
        "no-string-literal": false, ////disallows index signatures.  no thanks.
        "no-string-throw": true,
        "no-submodule-imports": true,
        "no-switch-case-fall-through": true,
        "no-this-assignment": true,
        "no-trailing-whitespace": false, //! change when project autofix is available.  right now too annoying for no real benifit.
        "no-unbound-method": true,
        "no-unnecessary-callback-wrapper": false, // overly brief code
        "no-unnecessary-class": true,
        "no-unnecessary-initializer": true,
        "no-unnecessary-qualifier": true,
        "no-unnecessary-type-assertion": true,
        "no-unsafe-any": false, //painful to change.
        "no-unsafe-finally": true,
        "no-unused-expression": true,
        "no-unused-variable": false, ////broken with tslint plugin, use --noUnusedLocals instead
        "no-use-before-declare": true,
        "no-var-keyword": true, ////v15
        "no-var-requires": false, ////need for creating ad-hoc type definitions for untyped packages
        "no-void-expression": true,
        "number-literal-format": false,
        "object-literal-key-quotes": {
            "options": "as-needed"
        }, //v15, autofix
        "object-literal-shorthand": false, //no.  allow flexibility
        "object-literal-sort-keys": false, //no, allow flexibility
        "one-line": false,
        "one-variable-per-declaration": true,
        "only-arrow-functions": false, //flexibility and named functions
        "ordered-imports": false, //no, allow flexibility 
        "strict-boolean-expressions": [
            true,
            "allow-null-union",
            "allow-undefined-union"
        ],
        ///////////////////////////////////////
        //!maybe? section  remaining properties not entered when starting v15 linting
        "prefer-function-over-method": false,
        "prefer-object-spread": true,
        "prefer-for-of": false,
        "restrict-plus-operands": true,
        "return-undefined": true,
        "semicolon": true,
        "strict-type-predicates": false, //requires strict-null-checks
        "triple-equals": {
            "options": [
                "allow-null-check"
            ]
        },
        "type-literal-delimiter": {
            "options": {
                "singleLine": "always"
            }
        },
        "typeof-compare": false, //included in ts2.2, so not needed.
        "use-default-type-parameter": false, ////overly terse
        "unified-signatures": true,
        "use-isnan": true,
        "quotemark": false
    },
    "rulesDirectory": [],
    "linterOptions": {
        "exclude": [
            "**/node_modules/**/*",
            "**/_graveyard/**/*",
            "**/built/**/*"
        ]
    }
}