# `NervesGate.Indicators`

Three status LEDs and fixed, release-only button gestures.

`identify/1` overrides the LEDs for five seconds, then resumes current status.
`status/1` is read-only; `observe/1` subscribes the caller to change hints.
Recovery runs in one bounded worker and is never automatically retried.

# `child_spec`

Returns a specification to start this module under a supervisor.

See `Supervisor`.

# `identify`

```elixir
@spec identify(GenServer.server()) :: :ok | {:error, term()}
```

Identify for five seconds, rejecting overlap and unavailable LED channels.

# `observe`

```elixir
@spec observe(GenServer.server()) :: :ok | {:error, :unavailable}
```

Subscribe to change hints; reread status after each notification.

# `start_link`

# `status`

```elixir
@spec status(GenServer.server()) :: map()
```

Read current LED patterns, button availability and the last recovery outcome.

# `unavailable`

---

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