Enumish
Base type of the kinds generated for @Enumize hierarchies.
For each hierarchy the plugin generates a nested sealed interface Enumish extending this interface. Its values — one singleton per leaf, called kinds — play the role of enum constants: the kind of a leaf object is the object itself, and the kind of a leaf class is its companion object.
Properties
The companion object of the generated Enumish type this kind belongs to — the reflection-free way from a kind to the hierarchy-wide operations (EnumishCompanion.entries / EnumishCompanion.valueOf); the counterpart of Enum.getDeclaringClass. Generated types covariantly narrow this to their concrete companion type.
The class literal of the leaf this kind corresponds to — the bridge to reflection-based libraries (kotlin-reflect, serialization, DI). For a non-final leaf this is the leaf class itself, which may differ from a value's runtime class.