Several components of the backend need to format snak values in some way; Similarly, several components have a need to parse snak values. We need a specification of how code can get access to the formatter/parser it needs.
The following things should be considered:
- formatters and parsers can be specific to a property (data) type, or generic for a given DataValue type.
- formatters are specific for a given output type (e.g. wikitext, html, etc).
- formatters and parsers can depend on the user's locale.
Experience with formatters and parsers in the front end's JS code should also be discussed and considered.