# `BB.Sensor.Server`
[🔗](https://github.com/beam-bots/bb/blob/main/lib/bb/sensor/server.ex#L5)

Wrapper GenServer for sensor callback modules.

This module manages the lifecycle of user-defined sensor modules, handling:
- Parameter reference resolution at startup
- Subscription to parameter changes
- Delegation of GenServer callbacks to user module
- Optional safety registration (only if sensor implements `disarm/1`)

User modules implement the `BB.Sensor` behaviour and define callbacks.
This server wraps them, providing the actual GenServer implementation.

# `t`

```elixir
@type t() :: %BB.Sensor.Server{
  bb: %{robot: module(), path: [atom()]},
  callback_module: module(),
  param_subscriptions: %{required([atom()]) =&gt; atom()},
  raw_opts: keyword(),
  resolved_opts: keyword(),
  user_state: term()
}
```

# `child_spec`

Returns a specification to start this module under a supervisor.

See `Supervisor`.

---

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