@Override
    public List<String> getAdditionalProjections(TransformContext context) {
        return getAdditionalProjectionsFunction().map(fn -> {
            NodeMapper mapper = new NodeMapper();
            T config = mapper.deserialize(context.getSettings(), getConfigType());
            return fn.apply(context, config);
        }).orElseGet(ListUtils::of);
    }
Gets the configuration class type.

<p>The referenced {@code configType} class must be a public POJO with a
public, zero-arg constructor, getters, and setters. If the POJO has a
public static {@code fromNode} method, it will be invoked and is
expected to deserialize the Node. If the POJO has a public static
{@code builder} method, it will be invoked, setters will be called
on the builder POJO, and finally the result of calling the
{@code build} method is used as the configuration type. Finally,
the deserializer will attempt to create the type and call setters on
the instantiated object that correspond to property names (either named
"set" + property name, or just property name).

@return Returns the configuration class (a POJO with setters/getters).
smithy-build/src/main/java/software/amazon/smithy/build/transforms/ConfigurableProjectionTransformer.java