code: function (event, callback) {
              
              // Background: The structure of the global object "handlers"
              // ---------------------------------------------------------
              // Here is an example of what "handlers" can look like:
              // handlers ===
              //    { Move:  {5:[fnA], 6:[fnB, fnC], global:[fnD]},
              //     Change: {6:[fnE]}
              //    }
              // In this example, when the 'Move' event is triggered on entity #6 (e.g.
              // entity6.trigger('Move')), it causes the execution of fnB() and fnC(). When
              // the Move event is triggered globally (i.e. Crafty.trigger('Move')), it
              // will execute fnA, fnB, fnC, fnD.
              // 
              // In this example, "this" is bound to entity #6 whenever fnB() is executed, and
              // "this" is bound to Crafty whenever fnD() is executed.
              //
              // In other words, the structure of "handlers" is:
              //
              // handlers[event][entityID or 'global'] === (Array of callback functions)
  
              if (!handlers[event]) handlers[event] = {};
              var hdl = handlers[event];
  
              if (!hdl.global) hdl.global = [];
              return hdl.global.push(callback) - 1;
          }
docs: @
  #Crafty.bind
  @category Core, Events
  @sign public Number bind(String eventName, Function callback)
  @param eventName - Name of the event to bind to
  @param callback - Method to execute upon event triggered
  @returns ID of the current callback used to unbind
  
  Binds to a global event. Method will be executed when `Crafty.trigger` is used
  with the event name.
  
  @see Crafty.trigger, Crafty.unbind