Faithful whole-path export: the offline loop-walk foundation

Paul's program #2 (export the whole path, not just the current song). The pieces that let us render the full journey offline without playing it in real time:

• FaustLive.makeWalk is EXPORTED — the same per-bar walk the live conductors run.

• targeting.stateAt(pt): the pure blend state (K.mix + key/bpm/mode) with no store side effects.

• app/journey.js walkLoop(): drives makeWalk with a getState that walks the loop (pointOnPath(travelForBar(b)) -> stateAt), returning per-bar render payloads for one full loop (waypoints × pace bars).

Verified: headless: a 3-waypoint loop walks 72 bars / 303s, states evolve (2 unit topologies), events 26-59/bar, zero errors.

▶ Play it: Mercury Interrogation — where the harmony organ has the least anywhere to hide https://stellate.app/?genre=bebop&seed=4640&path=694.13834,713.13867,675.13867&xdur=13.122

a43c0bf https://github.com/aboard-io/stellate/commit/a43c0bf0a9c76291565d1f8107020f5b9c6661d8