Public API inconsistency, one character. Verified by introspecting all fifteen register_* functions in pcapkit/foundation/registry/protocols.py:
register_hip_parameter schema is KEYWORD_ONLY
register_hopopt_option schema is KEYWORD_ONLY
register_http_frame schema is KEYWORD_ONLY
register_ipv4_option schema is KEYWORD_ONLY
register_ipv6_opts_option schema is KEYWORD_ONLY
register_ipv6_route_routing schema is KEYWORD_ONLY
register_mh_extension schema is POSITIONAL_OR_KEYWORD <--
register_mh_message schema is KEYWORD_ONLY
register_mh_option schema is KEYWORD_ONLY
register_pcapng_block schema is KEYWORD_ONLY
register_pcapng_option schema is KEYWORD_ONLY
register_pcapng_record schema is KEYWORD_ONLY
register_pcapng_secrets schema is KEYWORD_ONLY
register_tcp_mp_option schema is KEYWORD_ONLY
register_tcp_option schema is KEYWORD_ONLY
protocols.py:537-538 is missing the * that its fourteen siblings have.
Widening a parameter to keyword-only is technically breaking for anyone passing it positionally, but the asymmetry is clearly unintended and the prerelease window is the cheap moment to fix it.
Public API inconsistency, one character. Verified by introspecting all fifteen
register_*functions inpcapkit/foundation/registry/protocols.py:protocols.py:537-538is missing the*that its fourteen siblings have.Widening a parameter to keyword-only is technically breaking for anyone passing it positionally, but the asymmetry is clearly unintended and the prerelease window is the cheap moment to fix it.