{
  /*
   * ENVIRONMENTS
   * =================
   */

  // Define globals exposed by modern browsers.
  "browser": true,

  // Define globals exposed by jQuery.
  "jquery": true,

  // Define globals exposed by Node.js.
  "node": true,

  // Allow ES8.
  "esversion": 9,

  /*
   * ENFORCING OPTIONS
   * =================
   */

  // Force all variable names to use either camelCase style or UPPER_CASE
  // with underscores.
  "camelcase": false,

  // Prohibit use of == and != in favor of === and !==.
  "eqeqeq": true,

  // Enforce tab width of 2 spaces.
  "indent": 2,

  // Require variables/functions to be defined before being used
  "latedef": false,

  // Enforce line length to 100 characters
  "maxlen": 220,

  // Require capitalized names for constructor functions.
  "newcap": true,

  // Enforce use of single quotation marks for strings.
  "quotmark": "single",

  // Enforce placing 'use strict' at the top function scope
  "strict": true,

  // Prohibit use of explicitly undeclared variables.
  "undef": true,

  // Warn when variables are defined but never used.
  "unused": false,

  // Prohibit use of empty blocks
  "noempty": true,

  /*
   * RELAXING OPTIONS
   * =================
   */

  // Suppress warnings about == null comparisons.
  "eqnull": true,

  "predef": [
    "requirejs",
    "define",
    "jsPlumb",
    "Magnetizer",
    "Morris",
    "TweenLite",
    "Circ"
  ]
}