Would be good to explain the logic of representing a set of annotations loaded from a file as a (data)class, and how each class that corresponds to an annotation format that has a shorthand string name. This is not super clear from the docs right now I think