# `KiwiCodec.Metadata`
[🔗](https://github.com/open-pencil/kiwi_codec/blob/v0.7.0/lib/kiwi_codec/metadata.ex#L1)

Compiled metadata attached to generated Kiwi modules.

Generated modules expose this metadata through `__kiwi_metadata__/0` so encoders,
decoders, inspectors, and tooling can work from one normalized description of
fields, enum values, and definition kind.

# `kind`

```elixir
@type kind() :: :message | :struct | :enum
```

# `t`

```elixir
@type t() :: %KiwiCodec.Metadata{
  enum_by_name: %{required(atom()) =&gt; integer()},
  enum_by_value: %{required(integer()) =&gt; atom()},
  fields_by_id: %{required(pos_integer()) =&gt; KiwiCodec.Metadata.Field.t()},
  fields_by_name: %{required(atom()) =&gt; KiwiCodec.Metadata.Field.t()},
  kind: kind(),
  ordered_fields: [KiwiCodec.Metadata.Field.t()]
}
```

---

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