# `Ash.Type.Keyword`
[🔗](https://github.com/ash-project/ash/blob/v3.23.1/lib/ash/type/keyword.ex#L5)

Represents a keyword list, stored as a `:map` in the database.

A builtin type that can be referenced via `:keyword`

* `:fields` (`t:keyword/0`) - Required. The types of the fields in the keyword, and their constraints.  
  If constraints are specified, only those fields will be in the casted keyword.  
  For example:  
      fields:  [
        amount: [
          type: :integer,
          description: "The amount of the transaction",
          constraints: [
            max: 10
          ]
        ],
        currency: [
          type: :string,
          allow_nil?: false,
          description: "The currency code of the transaction",
          constraints: [
            max_length: 3
          ]
        ]
      ]  
  allow_nil? is true by default

  * `:type` (an `Ash.Type`) - Required.

  * `:description` (`t:String.t/0`)

  * `:allow_nil?` (`t:boolean/0`) - The default value is `true`.

  * `:constraints` (`t:keyword/0`) - The default value is `[]`.

# `handle_change?`

# `prepare_change?`

---

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