scenegen.py compiles each scene into a C source and header, driven by a rule block with per-input stem expansion.