Similar to the parser, we need to adapt the writer for the new model as well.
Note: The legacy writer (see git history) can be used as a baseline, there is nothing inherently wrong with it. It will have to be adapted to the new data model, and it should definitely use composition instead of inheritance to combine the writer classes for the new data model.