(defn my-function
[{:keys! [username]
:keys [firstname
lastname]}]
(do-stuff username
firstname
lastname))
A minor downside is that now it seems `nil` is even more overloaded b/c you can explicitly pass in a nil and give it a special meaning. This generally cascades in to messyness (better to have a special key like `:missing-username`).
And cool to see you guys are from Santa Barbara. Lots of relevant talent there :)