Prostore::Schema::Field
A column declaration captured from a field macro call (ADR-0002, 0004,
0011, 0013, 0014).
The actual default/backfill/lazy lambdas (when present) are not stored
here — they are captured separately at the macro level and referenced by
generated code. This struct holds only schema-level facts that survive
into the fingerprint, the diff engine, and the migration plan.
Note on String typing: while the user-facing DSL accepts Symbols
(field 1, :id, ...), the macro stores the column name as a String at
the schema-model level. This lets prostore round-trip schema state
through JSON for ADR-0009's persisted migration plan. The Crystal
type system can't construct Symbols at runtime, so a String here is
what makes resume work.
Constructors
Instance methods
Stable CHECK-constraint name for an enum field (ADR-0016). Used by
both the CREATE TABLE renderer and the AlterEnumMembers step so
the constraint can be located and replaced at migration time.