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

Fills the form DSL state with sensible defaults before downstream
transformers run.

Three responsibilities, applied in order:

  1. **Domain inheritance** — copy each key in `@domain_mappings`
     from the resource's domain into the resource's DSL state when
     the resource hasn't set it explicitly. Resource overrides win.

  2. **Identity defaults** — derive `identity.name` from the resource
     module name (snake-cased, suffixed with `_form`) when not set,
     and derive `identity.stream_name` as `<name>_stream`.

  3. **Master-check fallback** — when neither resource nor domain
     defines `master_check`, persist a fallback MFA pointing to
     `MishkaGervaz.Helpers.master_user?/1`.

## Pipeline

See `transform/1` — every stage takes the DSL state as the first
argument so the entry point reads top-down.

See `MishkaGervaz.Form.Transformers.ResolveFields` and
`MishkaGervaz.Form.Transformers.BuildRuntimeConfig` for the
downstream transformers that consume these defaults.

# `after?`

# `after_compile?`

# `before?`

---

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