code: function(config){
      if (!config.name)
          throw "ERR: No name was assigned";
      if(!config.post)
          throw "ERR: No post function was assigned";
      this.name = config.name;
      this.req = config.req || [];
      this.post = config.post;
      this.invokers = config.invokers || [];
      this.pre = config.pre;
  }
docs: This callback is called when a registered event is invoked.
  @callback eventCallback
  @param {Object} inputs -- The data stored from needs
  @param {Object} eventData - The data from the invoked event
  @this callee
   
  A need object
  
  @alias Need
  @param Need {Object} Need - The need's config
  @param Need.name {String} name - The need's name
  @param Need.req {String[]} req - The required needs for this need
  @param Need.post {post} post - The callback that is called after all requirements are satisfied
  @param Need.pre {pre} pre - The callback that is called before any of the requirements are triggered
  @param Need.invokers {Object[]} invokers - An array of invokers
  @param Need.invokers[].event {String|String[]} event - Name of the event or events for this invoker
  @param Need.invokers[].callback {System~eventCallback} callback - A callback for when the event is invoked.