docs: function findMiddleware (state, spec) {
    const parts = spec.split('.')
    const stackName = parts[ 0 ]
    const stepName = parts[ 1 ]
    const stack = state.stacks[ stackName ]
    if (!stack) {
      throw new Error(`A stack named '${stackName}' was specified but not found`)
    } else if (!stepName) {
      return stack
    }
    if (!stack.calls[ stepName ]) {
      throw new Error(`A step named '${stepName}' for stack '${stackName}' was specified but not found`)
    }
    // a new name is warranted so that we don't end up over-writing a previous step name
    // or have a future name over-write this
    const newName = [ stackName, stepName ].join(':')
    return { name: newName, call: stack.calls[ stepName ] }
  }