Callback is usually the final parameter because it's often optional. In this case it's a mandatory field.
If you feel strongly about having it as the final parameter i can try and make it work. But it would be difficult having 3 optional parameters in the middle of the signature. Having one of them on the end simplifies things.

Agree, silent should instead be some sort of customOptions object or something similar. Good call.