@Override
        public Stream<ValidationEvent> visitLiteral(Literal literal) {
            return literal.accept(new LiteralVisitor<Stream<ValidationEvent>>() {
                @Override
                public Stream<ValidationEvent> visitBoolean(boolean b) {
                    return Stream.empty();
                }

                @Override
                public Stream<ValidationEvent> visitString(Template value) {
                    return OptionalUtils.stream(validateTemplate(value));
                }

                @Override
                public Stream<ValidationEvent> visitRecord(Map<Identifier, Literal> members) {
                    return Stream.empty();
                }

                @Override
                public Stream<ValidationEvent> visitTuple(List<Literal> members) {
                    return Stream.empty();
                }

                @Override
                public Stream<ValidationEvent> visitInteger(int value) {
                    return Stream.empty();
                }
            });
        }
Validate that URIs start with a scheme.
smithy-rules-engine/src/main/java/software/amazon/smithy/rulesengine/validators/RuleSetUriValidator.java