To perform font matching, Fontconfig stores information about all of the available fonts. The information collected prescribes the matching process; only the available information can be used to select fonts. As such, it is likely that this matching process will not meet the requirements for all applications. During the integration of Fontconfig support into Mozilla, precise Unicode coverage and OS/2 language group information was added to Fontconfig. Additional information will likely be added in the future as new applications demonstrate a need for more control over font matching.
Fontconfig uses FreeType to discover information about the available fonts. This does not proscribe the use of FreeType by users of Fontconfig as there are no FreeType abstractions exposed in the Fontconfig API. However, the use of FreeType may constrain the information that can be collected from fonts. This information includes such things as the family name, style, available sizes, Unicode coverage and language groups.