private static Arity getStepOutputArity(final Step step, final Arity inputArity) {
        if (step == null) {
            throw new NullPointerException("step is marked non-null but is null");
        }

        final String stepName = step.getClass().getSimpleName();
        final Arity result;
        // Step 1. Check if it is a STEP_TO_ARITY_FUNCTION_MAP member.
        // Step 2. Check if the step is a reducing Barrier Step
        if (STEP_TO_ARITY_FUNCTION_MAP.containsKey(stepName)) {
            result = inputArity.computeArity(STEP_TO_ARITY_FUNCTION_MAP.get(stepName).apply(step));
        } else if (step instanceof ReducingBarrierStep<?, ?>) {
            result = inputArity.computeArity(Arity.DEFINITELY_SINGULAR);
        } else {
            // If the step is not in above list, then consider it a multi arity from here on.
            result = Arity.MULTI;
        }
        return result;
    }
This enum value tells that the output arity of the step is multiple.
For example: out(), in() unfold etc.
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/util/StepOutputArityPredictor.java