Validation And Star Semantics

Field validation

vary uses HTTP token syntax for field names. Use is_valid_field_name when validating user-supplied names before calling append or vary:

if (!polycpp::vary::is_valid_field_name(name)) {
    // Reject the input or report a validation error.
}

Invalid field names throw polycpp::TypeError and do not mutate polycpp::http::Headers or response-like objects.

Star behavior

* means the response varies on all request headers. It dominates all other fields:

polycpp::vary::append("Accept, Accept-Encoding", "*");
// returns "*"

polycpp::vary::append("*", "Origin");
// returns "*"

This matches upstream behavior and is release-blocking compatibility.