Adds a Formatter to format fields of the given type.
On print, if the Formatter's type T is declared and fieldType is not assignable to T,
a coercion to T will be attempted before delegating to formatter to print a field value.
On parse, if the parsed object returned by formatter is not assignable to the runtime field type,
a coercion to the field type will be attempted before returning the parsed field value.
Adds a Printer/Parser pair to format fields of a specific type.
The formatter will delegate to the specified printer for printing
and the specified parser for parsing.
On print, if the Printer's type T is declared and fieldType is not assignable to T,
a coercion to T will be attempted before delegating to printer to print a field value.
On parse, if the object returned by the Parser is not assignable to the runtime field type,
a coercion to the field type will be attempted before returning the parsed field value.