feat(web): choose the MAAD measure on file details

Structure, spectrum and file-detail MAAD queries now bind a measure from
a shared parser (parseMaadParams / parseMaadStatsParams, default
addresses), so the MAX(CASE) pivots never mix measures. Spectrum routes
reject packets and bytes with a 400 because no weighted spectrum exists.

The file detail page gets a shared MaadMeasureFilter next to the address
family control. Packets and bytes hide the spectrum section. A Drizzle
migration adds the measure key and CHECKs and keeps existing rows as
addresses.
2dd7548ff8flamboh committed on 9/26/2026, 11:18:02 PMparentb987c2d
21 files changedLine totals unavailable