feat: nopaint system integrated into AC Native runtime
Runtime-level persistent painting canvas that survives piece swaps:
- system.painting: persistent ACFramebuffer, accessible from any piece
- system.nopaint: state machine (is/cancelStroke), brush position, buffer
- Auto-creates painting+buffer when piece exports system="nopaint"
- Touch→paint→bake lifecycle handled in C (js_call_act/js_call_paint)
- Painting composited as background before piece paint()
- Buffer baked onto painting on stroke lift, then cleared
- Non-nopaint pieces (prompt) can access system.painting to show it
New rendering primitives:
- page(painting) switches render target, returns chainable proxy
- paste(painting, dx, dy) alpha-composites buffers
- painting.pixels Uint8Array for direct pixel access
- line(x0,y0,x1,y1,thickness) thick lines via filled circles
- graph_line_thick() in graph.c
Includes painting.mjs test piece for standalone testing.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>