Target.at constructor
The widget at a point, in the coordinates every box in an observation is reported in.
What to reach for when a control has no words. Six or seven of the
forty-odd things on a real screen carry no label, no text and no tooltip
— icon buttons, mostly — and until this there was no way to name one at
all. It is also how a screen item is acted on: the host turns
{"item": 20} into the centre of that item's box.
It resolves through the same ladder as every other target rather than tapping blind coordinates: the point picks the widget, and being covered, offscreen or gone is refused exactly as it would be for a text target.
What the point picks is the widget the pointer would reach; where a verb with a finger puts it down is the point itself — see point. Which matters exactly where this form earns its keep, on a surface whose regions are painted rather than built and therefore share one box: there the widget is the whole canvas and its centre is a different region every time.
The same on both surfaces that speak this vocabulary — a scenario's
verbs and a drive's. tap(Target.at(x, y)) is tapAt(Offset(x, y)),
and {"at": {"x": …, "y": …}} is the same press again.
Implementation
const factory Target.at(double x, double y) = _At;