# ALIGNMENT — ModuLisp standalone repo ## Mission Give the ModuLisp engine — the portable language + DAG signal-engine core of uSEQ — its own repository so it can evolve and be tested independently of the firmware, and be consumed two ways: 1. **Host builds** (`meson setup build && ninja -C build && meson test -C build`) — the unit-test surface for engine work. 2. **Arduino library** (via `library.properties`) — included by the RP2350 uSEQ firmware. The uSEQ tree remains the system of record for the full product; this repo is the engine core only. Divergence policy: changes land here first (with tests), and the uSEQ firmware updates its consumption, not the other way round — until uSEQ's own copy is retired. ## Open questions 1. **License resolved 2026-08-17:** MPL-2.0, adopted from the pre-existing Forgejo `w1n5t0n/modulisp` placeholder repo (Dimi, 2025-03). The uSEQ tree carries `license/cern_ohl_s_v2.txt` (a hardware license, wrong fit for C++ sources), so this file-set is now MPL-2.0 by operator's placeholder choice. 2. **Test exclusions.** `test_flash_storage.cpp`, `test_wasm_wrapper_projection.cpp`, and `test_osc_sine_nodedef.cpp` stay behind in uSEQ because they link the firmware, wasm, and nodedef modules respectively (details in README.md). If those modules are ever extracted, their tests should follow. 3. **Upstream sync.** This extraction was a one-time copy of the working tree at src-useq git `1081ae8` (2026-08-17). There is no automation keeping this repo in sync with later uSEQ engine changes; the first divergence will need a cherry-pick/replay decision. 4. **`modulisp/` crate is a stub.** Only `modulisp/lisp/symbol_intern.h` lives there today. The expected growth path is that language-level machinery moves out of `signal_engine/` into `modulisp/` over time; the sibling directory layout under `src/` exists to keep relative includes stable while that happens.