# `Dsxir.Signature.Field`

Internal struct produced by the Signature DSL for each `input` / `output` entity.

`:type` holds the raw user value (shorthand atom, tuple, or Zoi schema). `:zoi`
is populated by the transformer with the canonical Zoi schema. `:kind` is
`:input` or `:output`.

# `kind`

```elixir
@type kind() :: :input | :output
```

# `t`

```elixir
@type t() :: %Dsxir.Signature.Field{
  __spark_metadata__: term(),
  desc: nil | String.t(),
  kind: kind(),
  name: atom(),
  type: term(),
  zoi: nil | Zoi.schema()
}
```

---

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