code: function () {
              var id = UID(), craft;
  
              entities[id] = null; //register the space
              entities[id] = craft = Crafty(id);
  
              if (arguments.length > 0) {
                  craft.addComponent.apply(craft, arguments);
              }
              craft.setName('Entity #'+id); //set default entity human readable name
              craft.addComponent("obj"); //every entity automatically assumes obj
  
              Crafty.trigger("NewEntity", { id: id });
  
              return craft;
          }
docs: @
  #Crafty.e
  @category Core
  @trigger NewEntity - When the entity is created and all components are added - { id:Number }
  @sign public Entity Crafty.e(String componentList)
  @param componentList - List of components to assign to new entity
  @sign public Entity Crafty.e(String component1[, .., String componentN])
  @param component# - Component to add
  
  Creates an entity. Any arguments will be applied in the same
  way `.addComponent()` is applied as a quick way to add components.
  
  Any component added will augment the functionality of
  the created entity by assigning the properties and methods from the component to the entity.
  
  @example
  ~~~
  var myEntity = Crafty.e("2D, DOM, Color");
  ~~~
  
  @see Crafty.c