Написать класс (или функцию) — параметрический декоратор @Matchable(…), которому предаются типы полей (ноль или больше). @Matchable(тип1, тип2, …) модифицирует декорируемый класс, добавляя туда возможность позиционного сопоставления полей в операторе match / case. Поля для позиционного сопоставления берутся из аннотации класса в порядке появления в ней; в сопоставлении участвуют только поля одного из заданных типов — тип1, тип2 и т. д.
One Other Three
