Ported Annotation model to TypeScript