{

    // Custom globals
    "predef"        : [
        "define"
    ],


    // Environemnts
    "browser"       : true,      // defines globals exposed by modern browsers:
    "couch"         : false,     // defines globals exposed by CouchDB
    "node"          : true,      // defines globals available when your code is running inside of Node.js
    "rhino"         : false,     // defines globals available when your code is running inside of Rhino
    "worker"        : true,      // defines globals available when your code is running inside of a Web Worker
    "wsh"           : false,     // defines globals available when your code is running as a script for the Windows Script Host.

    "devel"         : false,     // defines globals that are usually used for logging poor-man's debugging: console, alert
    "es5"           : false,     // use ECMAScript 5 specific features such as getters and setters
    "esnext"        : false,     // use ES.next specific features such as const
    "nonstandard"   : false,     // defines non-standard but widely adopted globals such as escape and unescape


    // Whitespace
    "indent"        : 4,         // enforces specific tab width
    "smarttabs"     : true,      // suppresses warnings about mixed tabs and spaces when the latter are used for alignmnent only
    "trailing"      : true,      // error to leave a trailing whitespace in your code


    // Code Complexity
    "maxparams"     : 5,         // max number of formal parameters allowed per function
    "maxdepth"      : 3,         // control how nested do you want your blocks to be
    "maxstatements" : 40,        // max number of statements allowed per function
    "maxcomplexity" : 8,         // control cyclomatic complexity throughout your code
    "maxlen"        : 0,         // maximum length of a line


    // Enforcing Options
    "bitwise"       : true,      // prohibits the use of bitwise operators
    "camelcase"     : true,      // force all variable names to use either camelCase style or UPPER_CASE with underscores
    "curly"         : true,      // always put curly braces around blocks in loops and conditionals
    "eqeqeq"        : true,      // prohibits the use of == and != in favor of === and !==
    "forin"         : true,      // requires all for in loops to filter object's items
    "immed"         : true,      // prohibits the use of immediate function invocations without wrapping them in parentheses
    "latedef"       : true,      // prohibits the use of a variable before it was defined
    "newcap"        : true,      // requires you to capitalize names of constructor functions
    "noarg"         : true,      // prohibits the use of arguments.caller and arguments.callee
    "noempty"       : true,      // warns when you have an empty block in your code
    "nonew"         : true,      // prohibits the use of constructor functions for side-effects
    "plusplus"      : true,      // prohibits the use of unary increment and decrement operators
    "quotmark"      : "single",  // enforces the consistency of quotation marks used throughout your code
    "regexp"        : true,      // prohibits the use of unsafe . in regular expressions
    "undef"         : true,      // prohibits the use of explicitly undeclared variables
    "unused"        : true,      // warns when you define and never use your variables
    "strict"        : false,     // requires all functions to run in EcmaScript 5's strict mode


    // Relaxing Options
    "asi"           : false,     // suppresses warnings about missing semicolons
    "boss"          : false,     // suppresses warnings about the use of assignments in cases where comparisons are expected
    "debug"         : false,     // suppresses warnings about the debugger statements
    "eqnull"        : false,     // suppresses warnings about == null comparisons
    "evil"          : false,     // suppresses warnings about the use of eval
    "expr"          : false,     // suppresses warnings about the use of expressions where normally you would expect to see assignments or function calls
    "funcscope"     : false,     // suppresses warnings about declaring variables inside of control structures while accessing them later from the outside
    "globalstrict"  : false,     // suppresses warnings about the use of global strict mode
    "iterator"      : false,     // suppresses warnings about the __iterator__ property
    "lastsemic"     : false,     // suppresses warnings about missing semicolon
    "laxbreak"      : false,     // suppresses most of the warnings about possibly unsafe line breaking
    "laxcomma"      : false,     // suppresses warnings about comma-first coding style
    "loopfunc"      : false,     // suppresses warnings about functions inside of loops
    "multistr"      : false,     // suppresses warnings about multi-line strings
    "onecase"       : false,     // suppresses warnings about switches with just one case
    "proto"         : false,     // suppresses warnings about the __proto__ property
    "regexdash"     : false,     // suppresses warnings about unescaped - in the end of regular expressions
    "scripturl"     : false,     // suppresses warnings about the use of script-targeted URLs—such as javascript:...
    "shadow"        : false,     // suppresses warnings about variable shadowing
    "sub"           : false,     // suppresses warnings about using [] notation when it can be expressed in dot notation: person['name'] vs. person.name
    "supernew"      : false,     // suppresses warnings about "weird" constructions like new function () { ... } and new Object;
    "validthis"     : false      // suppresses warnings about possible strict violations when the code is running in strict mode and you use this in a non-constructor function

}
