Validates estimator entities declared in the DSL.
Checks:
- Sensor-nested estimators carry no
inputdeclarations (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?: trueset on the sole input are accepted (treated as multi-input degenerate form). - Every
inputpath resolves to an existing publisher (sensor or estimator) in the topology. - No cycles in the estimator dependency graph.
sync_toleranceis only declared on multi-input estimators (a straysync_toleranceon 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).