def run(**options)
      @options = options
      fail RequirementsNotMet.new("#{self} requires the following parameters #{requirements}") unless requirements_met?
      new(@options).tap do |interaction|
        interaction.__send__(:run)
      end
    end
def run(**options)
      @options = options
      fail RequirementsNotMet.new("#{self} requires the following parameters #{requirements}") unless requirements_met?
      new(@options).tap do |interaction|
        interaction.__send__(:run)
      end
    end
checks if requirements are met from the requires params
 creates an instance of the interaction
 calls run on the instance