oriented method
This device as orientation shows it — itself for portrait, for null, and
for anything that cannot rotate.
The one place the orientation axis becomes geometry. Everything
downstream takes a Device and reads width, height and the insets —
the capture viewport, the harness args, the silhouette, the splash sweep —
so resolving the axis into a device here leaves all of them untouched.
Implementation
Device oriented(ScreenOrientation? orientation) =>
orientation == ScreenOrientation.landscape && canRotate
? rotated()
: this;