I believe some explicit configuration at the top of your Interactor implementation could go a long way here. Something like:

```ruby
class DoThingsWithRequiredParams
  include Interactor
  context_key foo: {required: true}, bar: {default: nil}

  def call
    # important stuff here
  end
end
```

I've struggled with a good way to implement these ideas myself. Sometimes I need fail-fast-style required params, sometimes I want defaults set, sometimes I want neither option.