Hi Emlyn, thanks for these!

Rather than using the `default-keys` def you have above, I'd prefer if you did something like
`(-> (select-keys ...) (dissoc :throwable))` or
`[params (if-let [t (:throwable params)] (assoc params :throwable (str t))) params]`, etc.

This way folks wouldn't need to be at all aware of the key restriction - it'd just work whatever keys they choose.

What do you think?