I, too, like the "magic" implicit access to context keys for convenience and brevity. Perhaps direct/explicit access could be the default, but a helper could be introduced to turn on magic/implicit access.

```ruby
class AuthenticateUser
   include Interactor
   context_accessor :email, :password

  # or, all at once
  #  context_accessor :all

  # or, Virtus-style:
  #  include Interactor.base(accessors: true)
 
   def call
     user = User.find_by(email)  # <- Magic configured explicitly, above
 
     if user && user.authenticate(password)  # <- Magic set explicitly, above
       context.user = user
     else
       fail!
     end
   end
 end
```

This feels very idiomatic to me. `attr_accessor` also creates "magic", but does so explicitly and, by convention, right at the top of your class.