         @fields[key].cancel()
       else
         child.removeKey key  for child in @children
+
       return this
 
     satisfy: (field) ->


  requireData: (fields) ->
    gate =
      if (fields.hasBrand? 'all') or (fields.hasBrand? 'any')
      then fields
      else @all fields...


      @satisfied = no
      @emit 'Canceled'

  @Gate = class Gate extends KDObject

    constructor: (fields = []) ->
      super()

      @id = @createId()
