The above fonts can be customized on a per-project level.
Note that font-serif, font-sans and font-mono describe how the font shall look (its style), whereas font-heading and font-body describe the context in which the fonts are used.
Context based fonts are primarily for template authors who only know the context in which the font is used but not what style individual template users want to assign to the headings.