NativeCanvasProducer
Attachment-owned native producer created independently for each retained canvas attachment.
The source and its authoritative state remain externally owned. Producer construction issues no GPU work; any renderer initialization belongs inside the capture's render callback after target reservation. All calls run on the device thread, outside declaration, measurement, and cached painting. An implementation must not draw into the current GUI or framebuffer.