feat(cl): QuickJS bridge — embed JS piece runner in Common Lisp binary
Scaffolding for running .mjs pieces on the CL variant:
- quickjs-shim.c: C wrapper for NaN-boxed JSValue (CFFI-safe)
- quickjs-ffi.lisp: CFFI bindings to QuickJS + shim
- js-bridge.lisp: registers CL graphics/audio as JS API, drives
piece lifecycle (boot/paint/act/sim) through QuickJS
- docker-build.sh: builds libquickjs.so + libquickjs-shim.so for CL
The bridge creates a __ac_api object in JS with wipe/ink/line/box/
circle/sound.synth/system.jump etc., backed by CL callbacks.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>