ShapeId create(final String key) {
            if (key.startsWith(PRELUDE_PREFIX)) {
                return getPreludeId(key);
            } else {
                return getNonPreludeId(key);
            }
        }
A least-recently used flyweight factory that creates shape IDs.

<p>Prelude IDs are stored separately from non-prelude IDs because we can make a reasonable estimate about the
size of the prelude and stop caching IDs when that size is exceeded. Prelude shapes are stored in a
ConcurrentHashMap with a bounded size. Once the size exceeds 500, then items are no longer stored in the cache.
Non-prelude shapes are stored in a bounded, synchronized LRU cache based on {@link LinkedHashMap}.
smithy-model/src/main/java/software/amazon/smithy/model/shapes/ShapeId.java