# Renderer Rules - `renderer/` draws the current `ImageDocument` plus read-only editor overlays. - Rendering backend details, e.g. WebGL objects, stay isolated here. - Do not mutate document or editor state directly. - Renderer interactions may emit intents/events only; callers translate them into commands. - Do not import React components or view code. - Do not leak backend objects into `core/`, `commands/`, `editor/`, or React state. - Cache only derived rendering data; authoritative state lives in `core/` and `editor/`.