Ported AnnotationGroup model to TypeScript