# `Isox.Dictionary.Entry`
[🔗](https://github.com/RicardoSantos-99/isox/blob/v0.2.0/lib/isox/dictionary/entry.ex#L1)

Uma entrada do dicionário: tudo que se sabe sobre um campo de uma
mensagem.

Cada entrada amarra três coisas que, separadas, obrigam quem usa a lib a
abrir a planilha do catálogo do lado: o nome do campo na struct do isox, o
nome que o Banco Central dá a ele (`name_br`) e o caminho dele dentro do
XML (`xml`).

O `name_br` é o mais útil dos três. É por ele que se acha o campo em
qualquer documento oficial do Pix, porque é o nome que o BCB usa na
planilha, nos manuais e nas mensagens de erro.

`within` marca campo que não fica solto na struct e sim dentro de uma lista
de mapas, como cada saldo de `Isox.Camt053`. Nesse caso `within` aponta o
campo da struct que carrega a lista.

# `requirement`

```elixir
@type requirement() :: :required | :optional | :conditional
```

Se o campo tem que ser preenchido, e sob que condição.

# `t`

```elixir
@type t() :: %Isox.Dictionary.Entry{
  codes: %{optional(String.t()) =&gt; String.t()} | nil,
  field: atom(),
  length: String.t() | nil,
  name_br: String.t() | nil,
  requirement: requirement(),
  rule: String.t() | nil,
  type: type(),
  what: String.t(),
  within: atom() | nil,
  xml: String.t()
}
```

# `type`

```elixir
@type type() :: :text | :numeric | :amount | :date | :datetime | :code | :indicator
```

Tipo base do campo, como o catálogo classifica.

---

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