Group of 4 Under the hood
Plugin UI components can now draw and target an Image element, not just the existing Raster/cell-based canvas
What
- The rendering diff/restamp pipeline now handles a new
Imageelement type alongside the existingRaster, with matching stamp/seen-key/refusal logic and an error when a render hook returns an image it didn't draw. - The
Imagerender-props validator now accepts an optionalkeyprop, which must be a non-empty string when present, and for images without columns/rows or a resolvable source, it requires the image to be "stamped by a plugin of this chain," otherwise reportingImage "<key>" is not stamped by a plugin of this chain. - The raster/paint tool's input can now target an Image source directly, using
{ requestId, key, source }, in addition to the existing cell-data form{ requestId, key, cells }. ui.blitchange detection now also treats a change in whether asourcefield is present or absent as meaningful, and its description now mentions "the Raster or Image being blitted" instead of just the Raster.
Why
This lets plugins draw with a full image source rather than only an encoded grid of cells, while keeping the same ownership and stamping checks that stop one plugin from tampering with another plugin's drawing.