@Override
    public List<ValidationEvent> validate(Model model) {
        ShapeVisitor<List<ValidationEvent>> visitor = new ShapeVisitor.Default<List<ValidationEvent>>() {
            @Override
            protected List<ValidationEvent> getDefault(Shape shape) {
                if (shape.isStringShape() || shape instanceof NumberShape) {
                    return validateSimpleShape(shape);
                } else {
                    return Collections.emptyList();
                }
            }

            @Override
            public List<ValidationEvent> structureShape(StructureShape shape) {
                return validateStructure(shape, model);
            }

            @Override
            public List<ValidationEvent> unionShape(UnionShape shape) {
                return validateUnion(shape, model);
            }

            @Override
            public List<ValidationEvent> enumShape(EnumShape shape) {
                return Collections.emptyList();
            }
        };

        return model.shapes().flatMap(shape -> shape.accept(visitor).stream()).collect(Collectors.toList());
    }
Sets a list of additional regular expression patterns that indicate a
value carries a timestamp.

@param additionalPatterns Additional patterns to add.
smithy-linters/src/main/java/software/amazon/smithy/linters/ShouldHaveUsedTimestampValidator.java