A user-declared top-level enum Name { V1, V2, ... } (#enum). A sibling of
Model/Struct. Referenced from a field by its bare PascalCase name.
Variants are PascalCase, unique, non-empty, and map to 0..N (the stored
u8 discriminant) in declaration order.
A model-level @projection(<name>: <field>, ...) directive (#113): a named,
compile-time-known subset of a model’s stored columns. Generates a tailored
projection struct + narrow read that materializes only PK + these fields.
The identity column is always materialized regardless of whether it appears
in fields (validation/codegen enforce this).