@SuppressWarnings("unchecked")
    public <T> T getExtensions(Class<T> as) {
        return (T) extensionCache.computeIfAbsent(as, t -> nodeMapper.deserialize(extensions, t));
    }
Attempts to deserialize the {@code extensions} into the targeted
type using a {@link NodeMapper}.

<p>Extraneous properties are ignored and <em>not</em> warned on
because many different plugins could be used with different
configuration POJOs.

<p>The result of calling this method is cached for each type,
and the cache is cleared when any mutation is made to
extensions.

@param as Type to deserialize extensions into.
@param <T> Type to deserialize extensions into.
@return Returns the deserialized type.
smithy-jsonschema/src/main/java/software/amazon/smithy/jsonschema/JsonSchemaConfig.java