After a successful client-side draw, all the host needs to know, so it can
present the result, is the swapchain image used, and the sub-area within
that image that was being used to draw the entire client window (with the
whole allocated area rarely used, except just before needing a new swapchain).
Cross-process-unique (on best-effort) ID of a [SharedPresentableImage],
such that multiple processes on the same system should be able to share
swapchains with each-other and (effectively) never observe collisions.
“Swapchains” group together some number (i.e. SWAPCHAIN_IMAGE_COUNT here)
of “presentable images”, to form a queue of render targets which can be
“presented” (to a surface, like a display, window, etc.) independently of
rendering being done onto other “presentable images” in the “swapchain”.