The default returns a TerminalFontRepresentation. This is almost certainly NOT what you want, so implement your own font() member anyway.
The default returns reasonable values, you might want to call this to get the defaults, then change some values and return the rest.
You can mix this in to your implementation class to get default implementations of new methods I add.
You will almost certainly want to override the things anyway, but this can help you keep things compiling.
Please note that there is no default for font.