private Function<AbstractCodeWriter<?>, Object> parseRelativeArgumentGetter() {
            if (relativeIndex == -1) {
                throw error("Cannot mix positional and relative arguments");
            }

            relativeIndex++;
            Object result = getPositionalArgument(relativeIndex - 1);
            return w -> result;
        }
A BlockOperation that repeats a template for each value referenced by the block. Each iteration pushes
a state to the writer that includes key, value, key.first, and key.last context properties. The name
of the context property can be customized in the template.
smithy-utils/src/main/java/software/amazon/smithy/utils/CodeFormatter.java