# `Bourse.WS.HandlerMappings`
[🔗](https://github.com/ZenHive/bourse/blob/main/lib/bourse/ws/handler_mappings.ex#L1)

Maps the `handle*` method names carried by the authored WebSocket slices to
unified `watch_*` family atoms.

Non-family handlers (auth, pong, subscription management) map to `:system`.

# `resolve_result`

```elixir
@type resolve_result() :: {:family, atom()} | :system | :not_found
```

# `handler_to_families`

```elixir
@spec handler_to_families(String.t()) :: [atom()]
```

Returns all families a handler dispatches to (composite handlers may return multiple).

# `handler_to_family`

```elixir
@spec handler_to_family(String.t()) :: atom() | nil
```

Returns the primary family for a handler, or nil for non-family handlers.

# `known_families`

```elixir
@spec known_families() :: [atom()]
```

Returns the known watch family atoms.

# `resolve_handler`

```elixir
@spec resolve_handler(String.t() | nil) :: resolve_result()
```

Resolves a handler method name to a watch family or `:system`.

---

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