--- status: open opened: 2026-09-30 located-in: - mesh-controller internal/catalogue (requires is a list of hard requirements) fixed-by: amended-design: --- # 166 — A requirement cannot be optional ## What was observed Making every dependency on ace a provision turned soft dependencies into hard ones. grafana now requires `influxdb-api` (a data source), ombi requires `sonarr-api`, `radarr-api` and `lidarr-api`, home-assistant requires the Servarr APIs and `mqtt-topic`. Each is optional to the software — grafana runs without a data source, ombi without lidarr — but a mesh without influxdb cannot assign grafana at all, and a mesh without lidarr cannot run ombi. ## What would be right A requirement a module can run without: resolved and bound when a provider exists, absent (with its `${bound:…}` placeholders refused or defaulted explicitly, never rendered empty) when none does — so the module description stays true on every mesh.