Per-row narrowing for TodoListItem: _key + label must be
strings; status, when present, must be a string — a non-string status is
rejected, while null counts as unset (GROQ materializes absent attributes
as null). The remaining columns stay loose (field validation owns them).
Per-row narrowing for TodoListItem:
_key+labelmust be strings;status, when present, must be a string — a non-string status is rejected, while null counts as unset (GROQ materializes absent attributes as null). The remaining columns stay loose (field validation owns them).