private String parseArgumentName() {
            int start = parser.position();
            parser.consumeWhile(this::isNameCharacter);
            String name = parser.sliceFrom(start);
            ensureNameIsValid(name);
            return name;
        }
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