To reduce frequent cross-referencing of documentation, it is ideal to stick to at most 3 parameters (usually 2):

```
fn(required, options) /* primitive, object */
fn(params, callback) /* object of parameters, async callback */
fn(required, [options], callback) /* non-ideal due to fallback logic: primitive, optional object, async callback */
```