How machines behave
The reasoning behind sizes, readiness, coordinates, and exit codes.
Sizes are named, not free-form
Sizes are named rather than free-form, and the concrete CPU, memory and disk behind each name are server-side, so they can change without a client release.
Running is not the same as ready
A machine has a working shell before it has a working desktop. machines.create returns once
the machine is running; waitForDesktop is what tells you the desktop is ready to drive.
Coordinates are refused, not clamped
Coordinates are the display’s own pixels, and a coordinate outside it is refused rather than clamped: a click 200 pixels off the edge is a bug worth surfacing, not one to land somewhere plausible.
A non-zero exit code is a successful call
Only a failure to run the command at all is an error. A command that runs and returns a non-zero exit code is a successful call — the exit code is data, not a fault.