Type guard: narrows an unknown to one of kind's values.
The original key → value map, preserved verbatim (the "enum object").
Localization keys per entry: each key mapped to `${prefix}.${key}`.
Phantom value (always null at runtime) whose type is the value union.
Use typeof X.Type to name the union in type positions — never read it
at runtime.
Every value in kind, as an array (handy for iteration/choices).
The bundle produced by defineType for a closed set of named values (an "enum-like"). Callers destructure the pieces they need.