def generate_annotations(api: API, usages: UsageCountStore) -> AnnotationStore:
_preprocess_usages(usages, api)
annotations = AnnotationStore()
_generate_remove_annotations(api, usages, annotations)
_generate_value_annotations(api, usages, annotations)
_generate_enum_annotations(api, annotations)
_generate_boundary_annotations(api, annotations)
return annotations