Parameter coercion

On my team we bias heavily towards single parameter “options bag” functions - would the following count as destructuring or parameter coercion?

function f({ age via assertNumber, name via assertString }) {
  //…
}

In that example, you would be doing parameter coercion inside of destructuring, not on a function parameter directly.

I think this puts out a fair argument towards allowing via with destructuring. Many function definitions use option bags like that, and it would be nice if via can work on any parameter, whether or not it's in an options bag or not.

My objection and reasoning still stand, but there is a happy medium between the two: allowing parameter coercion as mutually exclusively with destructured renaming. I simply cannot find a non-confusing use of {b: a via c}.