Sure. I will write up more later, but my thinking is this.
Have it ifdef guarded so it’s optional.
Modify register font to also have essentially a map of name to font pointer, and store the name as user data in the font. In the case of name collisions add a counter.
Then add a function to query the map for a name, and return the font pointer or null if none match
I’m guessing the additional code would be trivial, and the memory would be the name * 2+pointer per font