In the function similarity(MediaType), an exact match on type and sub-type will only score a 4 or a 3, while the known suffixes matches will always score a 4. This means that a known suffix will either collide with an exact match, or be scored higher than an exact match.
Example: Given a response body of either "application/ld+json" or "application/vnd.geo+json", and a target type of "application/ld+json;charset=ISO-8859-1":
"application/ld+json" is scored 3, since it is a match on type and sub-type, but varies by parameter
"application/vnd.geo+json" is scored a 4, since it doesn't match by sub-type, but when applying known suffixes it is a match as "application/json" and the parameters are dropped.
I'd suggest that matching by a known suffix should at best be scored lower than an exact match on type and sub-type.
In the function similarity(MediaType), an exact match on type and sub-type will only score a 4 or a 3, while the known suffixes matches will always score a 4. This means that a known suffix will either collide with an exact match, or be scored higher than an exact match.
Example: Given a response body of either "application/ld+json" or "application/vnd.geo+json", and a target type of "application/ld+json;charset=ISO-8859-1":
I'd suggest that matching by a known suffix should at best be scored lower than an exact match on type and sub-type.