def inputs
      self.class.filters.keys.each_with_object({}) do |name, h|
        h[name] = public_send(name)
      end
    end
def inputs
      self.class.filters.keys.each_with_object({}) do |name, h|
        h[name] = public_send(name)
      end
    end
@param inputs [Hash{Symbol => Object}] Attribute values to set.

 @private
 @!method compose(other, inputs = {})
   Run another interaction and return its result. If the other interaction
     fails, halt execution.

   @param other (see ActiveInteraction::Runnable#compose)
   @param inputs (see ActiveInteraction::Base#initialize)

   @return (see ActiveInteraction::Base.run!)
 @!method execute
   @abstract

   Runs the business logic associated with the interaction. This method is
   only run when there are no validation errors. The return value is
   placed into {#result}.

   @raise (see ActiveInteraction::Runnable#execute)
 Returns the inputs provided to {.run} or {.run!} after being cast based
   on the filters in the class.

 @return [Hash{Symbol => Object}] All inputs passed to {.run} or {.run!}.