# `MishkaGervaz.Form.Transformers.ResolveFields`
[🔗](https://github.com/mishka-group/mishka_gervaz/blob/v0.0.1-alpha.3/lib/mishka_gervaz/form/transformers/resolve_fields.ex#L1)

Resolves field configurations from the form DSL.

Stages, in order (see `transform/1`):

  * `resolve_auto_fields/1` — expands `auto_fields do … end` into
    explicit `Field` entities, detecting types from the resource's
    Ash attributes.
  * `resolve_explicit_field_types/1` — fills in the `type`,
    `type_module`, `options`, and `nested_fields` for fields that
    omit `type:` or use `:nested`.
  * `resolve_field_sources/1` — defaults `field.source` to the
    field's `name` when not set.
  * `resolve_relation_resources/1` — links `:relation` fields to
    their target resource via the Ash relationship table.
  * `resolve_field_positions/1` — applies `field_order` and the
    `:first` / `:last` / integer / `{:before, …}` / `{:after, …}`
    position tokens, persisting the resolved order under
    `:mishka_gervaz_form_field_order`.
  * `detect_preloads/1` — collects required preloads from
    `:relation` and `:select` fields, persisting them under
    `:mishka_gervaz_form_detected_preloads`.

Runs after `MishkaGervaz.Form.Transformers.MergeDefaults` and the
Ash `SetTypes` transformer; output is consumed by
`MishkaGervaz.Form.Transformers.BuildRuntimeConfig`.

# `after_compile?`

# `before?`

---

*Consult [api-reference.md](api-reference.md) for complete listing*
