# `BB.Dsl.Verifiers.ValidateEstimators`
[🔗](https://github.com/beam-bots/bb/blob/main/lib/bb/dsl/verifiers/validate_estimators.ex#L5)

Validates `estimator` entities declared in the DSL.

Checks:

- Sensor-nested estimators carry no `input` declarations (the parent
  sensor is the implicit input).
- Link-nested estimators declare at least one input.
- Multi-input estimators declare exactly one driver input.
- Single-input link-nested estimators with `driver?: true` set on the
  sole input are accepted (treated as multi-input degenerate form).
- Every `input` path resolves to an existing publisher (sensor or
  estimator) in the topology.
- No cycles in the estimator dependency graph.
- `sync_tolerance` is only declared on multi-input estimators (a stray
  `sync_tolerance` on a single-input estimator is a likely mistake).

Path resolution is intentionally loose at this stage: any path beginning
with `[:sensor, ...]` or `[:estimator, ...]` that matches a declared
publisher's full path is accepted. Subtree subscriptions and external
paths are not supported (use a controller-level subscription instead).

---

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