public static ProductiveByStrategy create(final Configuration configuration) {
        return new ProductiveByStrategy(new HashSet<>((Collection<String>) configuration.getProperty(PRODUCTIVE_KEYS)));
    }
Takes an argument of {@code by()} and wraps it {@link CoalesceStep} so that the result is either the initial
{@link Traversal} argument or {@code null}. In this way, the {@code by()} is always "productive". This strategy
is an "optimization" but it is perhaps more of a "decoration", but it should follow
{@link ByModulatorOptimizationStrategy} which features optimizations relevant to this one.
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/ProductiveByStrategy.java