Some errors in glyph.case

Hi! I wonder if these are mistakes in some glyph.case’s?

punctuation — no case, but
exclam — uppercase
question — uppercase
exclamdown — lowercase
questiondown — lowercase

math symbols — no case, but
greater — lowercase
less — lowercase

That is kindof on purpose.
The case defines what metrics/zones are visible and where rotated components aling too.

Makes sense, but I’m curious if I’m the only one facing a problem with its double function/hack.
I was going to rely on it for a script that generates useful kerning pairs, but this way things like “a?” and “¿T” are lower-to-uppercase pairs, which should be [optionally] ignored. I can assume all punctuation is no-case, but then .case needs checking… Which leaves me thinking that there might also be other exceptions and I should probably just figure the case of all glyphs myself. Which is fine, but doesn’t that make having access to glyph.case useless to the user?

You are right. I’ll think about it.

Exactly. What is the problem?

The .case glyphs are for all-caps setting, most non-.case are for mixed case. The good thing is that .case needs to be checked against uppercase letters only. And some special cases (like the Catalan punt volat)

Punctuation is historically grown. It is not entirely straight forward. You will need to deal with it in your automation, one way or another.