Now that I've seen it implemented, I think it would best best to have the same `Metadata` class everywhere and introduce a concept of `Metadata` processors that would get called when displaying tag values in the user interface.

The problem with this implementation is that the user doesn't see in the UI what are they missing if they are using a particular format, e.g. they don't know that MB has the original date as a full date, but it's being saved only as a year. Another problem is that some tags can't be saved at all in some formats, while it would be still nice to display them in the UI and say that this will be not saved to the file.

These are just comments for a possible future improvement, if we want to do the same for other formats. I think the current implementation should be fine for now.