point property
The point the pointer went down on — derived rather than recorded, so the schema cannot disagree with itself the way a second pair of numbers beside the first pair could.
That holds because a verb marks the shape of what it aimed at. A verb
aimed at a widget presses the centre of the box it resolved, and the
centre of the rect is that. A verb aimed at a point — tapAt,
dragFrom, or any verb whose target named a coordinate — records a box
of no size at the point, and the centre of that is the point. One
derivation, honest for both, and no rect here is ever a box the finger
did not go down in the middle of.
Implementation
(double, double) get point => (x + width / 2, y + height / 2);