Implementar (/ herdar / ~ estender) anotação no Kotlin

Em Java, tenho a possibilidade de "implementar" anotações.

Anotação Java de amostra:

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface JavaClassAnno {
  String[] value();
}

Exemplo de "implementação" Java:

class MyAnnotationLiteral 
                  extends AnnotationLiteral<JavaClassAnno> 
                  implements JavaClassAnno { // <--- works in Java
  private String value;

  public MyAnnotationLiteral(String value) {
    this.value = value;
  }
  @Override
  public String[] value() {
    return new String[] { value };
  }
}

Tentar portar isso para o Kotlin não funciona, pois diz que a anotação é final e, portanto, não pode ser herdada, ou seja, o seguinte não funcionará:

class MyAnnotationLiteral(private val internalValue: String) 
                 : AnnotationLiteral<JavaClassAnno>(), 
                   JavaClassAnno { // <--- doesn't work in Kotlin (annotation can not be inherited)
  override fun value(): Array<String> {
    return arrayOf(internalValue)
  }
}

Como você "implementa / estende" as anotações da maneira Kotlin? Não foi possível encontrar nenhum motivo para o Kotlin diferir em relação ao Java. Qualquer dica de como resolver esse problema ou qualquer fonte que indique por que é assim é bem-vinda.

A seguinte pergunta contém um caso de uso para esta constelação:Disparar evento CDI dinamicamente com qualificador com membros. Basicamente, você precisa de algo assim para limitar qual qualificador deve ser acionado com base em seus membros.

Observe que isso também se aplicaria a uma anotação Kotlin, bem como parece que uma anotação Kotlin não pode ser aberta e, portanto, não pode ser implementada / estendida também.

O que eu encontrei até agora é bastante mencionar@Inherited como um problema:

https://discuss.kotlinlang.org/t/inherited-annotations-and-other-reflections-enchancements/6209https://youtrack.jetbrains.com/issue/KT-22265

Mas não encontrei nenhum motivo para a anotação não ser implementável / herdável como em Java.

Eu também fiz essa pergunta agora aqui:https://discuss.kotlinlang.org/t/implement-inherit-extend-annotation-in-kotlin/8916

Atualização: Finalmente, encontrei algo sobre esta decisão de design, a saber, o seguinte problema (enquanto eu estava abrindo meu próprio problema):Herança de anotações. Proibir ou implementar corretamente. Como parece que a decisão foi "proibi-la", mesmo que não haja comentários (visíveis?), Discussões ou outras fontes sobre essa decisão.

Adicionado o seguinte problema:https://youtrack.jetbrains.com/issue/KT-25947

questionAnswers(1)

yourAnswerToTheQuestion