board:status is not a view with a field — board is not a property key. Write group:status board.group: sort: limit: render: and the view are 0..1 — repeating one is a parse error, never last-wins. Everything else is many. is:todo is:done is legal: an empty intersection is not a malformed line.
Canonical syntax order is for storage and diffing; it has nothing to do with evaluation. limit: is global and applies before grouping. sort: orders rows within each group.
One rule everywhere: -key:value matches blocks that do not have that key with that value — absence counts. So -is:done returns notes and meals too. For open tasks only, write is:task -is:done.
Names a value and infers the field. Its vocabulary is exactly what is drawn on a block — the TODO/DONE keyword and the type badge — so there is nothing to memorize. Properties have no face and never join it: priority:high, never is:high.
Repaired beats refused; refused beats silent. A query returning nothing shows cumulative counts term by term, because an intersection can be empty without any single term being wrong.