private Optional<ValidationEvent> validateHeader(MemberShape member, HttpHeaderTrait trait) {
        String header = trait.getValue();

        if (BLOCKLIST.contains(header.toLowerCase(Locale.ENGLISH))) {
            return Optional.of(danger(member,
                    trait,
                    String.format(
                            "`%s` is not an allowed HTTP header binding",
                            header)));
        }

        for (int i = 0; i < header.length(); i++) {
            if (!TCHAR.contains(header.charAt(i))) {
                return Optional.of(danger(member,
                        trait,
                        String.format(
                                "`%s` is not a valid HTTP header field name according to section 5.6.2 of RFC 9110",
                                header)));
            }
        }

        return Optional.empty();
    }
Gather the allowed characters for HTTP headers (tchar from RFC 9110 section 5.6.2). *
smithy-model/src/main/java/software/amazon/smithy/model/validation/validators/HttpHeaderTraitValidator.java