interface TagConverter<T>
abstract fun convert(key: T): String?
abstract fun reverse(key: String?, type: KType): T
abstract fun supportedType(): KType