A char argument, tag C. The wire carries a UTF-16 code unit, which is what a Java char is —
so a literal outside the BMP has no single-char spelling and is refused where it is parsed.
A float argument, tag F. Kept distinct from value_double because the JVM distinguishes them:
f(float) and f(double) are different overloads, and the tag is what tells them apart.