java.awt.Font documents that its constructors accepts logical font names
like "Serif" and font face names, like "Lucida Sans Regular"
GraphicsEnvironment.getAllFonts() will return fonts whose face names
are for logical fonts are, for example, "serif.bold"
The implication is that "serif.bold" is a valid name to pass in to
Font's constructor.
But there isn't explicit provision for accepting font family names
even though "Serif" is arguably the "family" name for a logical font
and the GraphicsEnvironment.getAvailableFontFamilyNames() API will
return family names like "Lucida Sans" and further documents that
these are useful in specifying just the family allowing the implementation
to pick up the most appropriate style.
Furthermore, when a face name is specified, there is no specification
how this is combined with "style" parameter, or with style attributes
supplied in a map.