A good starter goal would probably be to choose a suitable implementation for each of the 6 logical Java fonts (dialog, serif, etc.) and include those in Vassal.
By default, those 6 fonts would take over wherever those are defined.
We would need a global option defaulting to No for existing modules to turn that off.
On top of that, add per-module fonts to be loaded and used in text labels, HTML and to change the default font of the Vassal UI.
I’m not in favor of doing anything that prevents the fonts set by the desktop environment for native apps from being used, without the user explicitly selecting something else. Using the desktop environment defaults is the best way for a desktop app to have a platform-appropriate look.
Yes, On looking into it further, I agree, The logical fonts defined by Java are mapped to fonts that are also appropriate to the locality, to include non-latin glyphs where necessary.
Oh my. An interesting philosophical debate. But, to what end here? There are many TT fonts out there, some (a lot? - a lot being extremely relative here) are free. Get one or two of those and go with it. Vassal has the fonts, who cares about the OS specifics. I just want a non monospaced font as the default, aka proportional spacing. I do not care what that font is, I just stated my personal preference for Arial.
Just reading about the OPENTYPE Fonts, particularly this quote ‘OpenType fonts have many advantages — most prominently, the ability to use the same font files on both Windows and Mac platforms — and are the preferred format for graphics and documentation professionals today.’
This page - Opentype Fonts (Page 4) | FontSpace lists available fonts and whether they are 100% free, free for personal use, etc.
Something to perhaps keep in mind for Vassal.