# `MishkaGervaz.Form.Dsl.Fields`
[🔗](https://github.com/mishka-group/mishka_gervaz/blob/v0.0.1-alpha.3/lib/mishka_gervaz/form/dsl/fields.ex#L1)

Fields section — declares form fields manually or via auto-discovery.

Two top-level entities live here:

  * `field :name, :type do … end` — explicit field with full control.
  * `auto_fields do … end` — discover fields from the resource's
    public Ash attributes, with `override` for per-field tweaks.

The `field_order` schema key sets display order; fields not listed
appear at the end in declaration order.

## Example — explicit fields

    fields do
      field :title, :text do
        required true
        position :first

        ui do
          label "Post Title"
          placeholder "Enter title..."
          span 2
        end
      end

      field :status, :select do
        required true
        default :draft
        options [{:draft, "Draft"}, {:published, "Published"}]
      end

      field :user_id, :relation do
        load_action {:master_read, :tenant_read}
        mode :search
        display_field :email
      end
    end

## Example — auto-discovery

    fields do
      auto_fields do
        except [:id, :internal_only]
        position :end

        defaults required: false, visible: true

        override :age, type: :range, required: true

        override :bio do
          ui do
            label "Biography"
            rows 8
          end
        end
      end
    end

## Field types

Built-in types live under `MishkaGervaz.Form.Types.Field.*` —
`:text`, `:textarea`, `:select`, `:multi_select`, `:combobox`,
`:relation`, `:nested`, `:upload`, `:toggle`, `:checkbox`, `:date`,
`:datetime`, `:number`, `:json`, `:string_list`, `:password`, `:range`.
When `type` is omitted, it is inferred from the matching Ash
attribute.

## Nested fields

For `:nested` fields (embedded resources or constrained `{:array, :map}`
attributes), declare per-sub-field overrides with
`nested_field :name do … end` inside the parent field. See
`MishkaGervaz.Form.Entities.NestedField`.

# `section`

Returns the fields section definition.

---

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