         clear: (options={}) ->
             if @_hasRequired()
                 @_triggerRequired()
-                return
+                return false
 
             @upstream.clear(reset: true)
 

            ident = ident.identity?() or ident

            if not (n = @find(ident))
                return

            if @_isRequired(n)
                @_triggerRequired [n.get('concept')]
                return

            if not @_checkRequired() then return

            if (u = @upstream.find(ident))
                u.set(enabled: false)

        apply: (ident, options) ->
            ident = ident.identity?() or ident

            if not @_checkRequired()
                return false

            if not (n = @find(ident))
                return false

            # No attributes, which means this is not valid
            if not (attrs = n.toJSON())
                return false

            # Define upstream, this is idempotent
            u = @upstream.define(ident, n.path(), type: n.type)
