the current state
the action that triggered the reducer
launch a coroutine without exposing the bloc's CoroutineScope, it's internal to allow for JobConfig default values via extension functions