The "charset" concept is a nice way to provide custom output, but output is also about semantics . e.g whether to output speed as m/s or m⋅s⁻¹ . Charset is in there , but perhaps there should be another layer to allow for customisation of the semantic independent of charset