callback is always the last argument, and then you shuffle around the args if necessary for defaulting:

```coffee
getDataForKeyword: (keyword, options, callback) ->
  if _.isFunction options
    callback = options
    options = undefined
  {engine, locale} = options or {}
  …
```