Visuals to data
A screen shows data by being wired to it. The wire is a declared contract, not a query you maintain.
Wire a Table to a screen and say which rows, which fields, in what order. From then on the screen renders those rows live. A wire whose shapes cannot fit refuses at wiring time in one plain sentence. Emptiness never refuses: a Table with zero rows connects fine and the screen shows its honest empty state.
Rows into templates
The Repeat renders its children once per wired row, and row('column') reads the current row inside the template. The Calendar does the same per date bucket with bucket(). A button inside a template acts on its own row.
Numbers into words
Any text can carry a live expression over wired rows: count, sum, avg, min, max, shaped with concat, round, if, and len. A metric card's value is usually one of these.
Components talking to each other
Components announce what they hold: a field's typed value, a calendar's picked day, a chart's clicked point. Another component consumes an announcement by naming it: a button can submit with the date the calendar holds. Quick find feeds its filtered rows under a state key any data reader can point at.