# `Bourse.Unified.Descriptor`
[🔗](https://github.com/ZenHive/bourse/blob/main/lib/bourse/unified/descriptor.ex#L1)

Authored unified-method descriptors for Descripex `api()` hints.

Merges `endpoints.descriptors` from runtime venue specs at compile time.
`Bourse` uses `build_api_opts/2` to enrich hints (slot 5) while keeping
hand-authored Elixir arg shape and curated `@doc` descriptions.

# `build_api_opts`

```elixir
@spec build_api_opts(String.t(), [atom()]) :: keyword()
```

Builds Descripex `api()` opts from authored descriptor data and Elixir arg shape.

`required_params` is the hand-authored positional tail (after `exchange`).
Falls back to structural hints when no descriptor exists for `js_name`.

# `descriptors`

```elixir
@spec descriptors() :: %{required(String.t()) =&gt; map()}
```

Returns the merged JS-name → descriptor map from runtime venue specs.

---

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