pub fn validate_sql_widgets(
widgets: &[SqlWidget],
field: &str,
) -> Result<(), String>Expand description
Per-widget validation for a list of SqlWidgets — shared by the
View resource so authoring errors surface at view create. field
names the containing key for error messages. The read-only SQL check is
NOT here (it lives in the backend api::query sandbox, which kanade-shared
can’t depend on) — this validates structure: non-empty title/query, a
known kind, the channels each kind needs, a real placement, and a
parseable refresh.