@Override
        public T createTrait(ShapeId id, Node value) {
            T result = traitFactory.apply(value.expectStringNode().getValue(), value.getSourceLocation());
            // Reuse the node instead of creating a new one.
            result.setNodeCache(value);
            return result;
        }
@param id The name of the trait being created.
@param traitFactory The factory used to create the trait.
smithy-model/src/main/java/software/amazon/smithy/model/traits/StringTrait.java