Node values under their keys, beneath the memory tier alone: it stages, and only persist
commits each value whole by rename, evicting the least recently used past the budget. Every
change to the backend’s names runs under its lock; lookups and reads never wait on it.
A target rendered block by block off one value graph, reading @notes, the sum of the terms
added. A change builds only what it changed or newly reads; the rest stays as it stood.
Memory over a disk, or over nothing. Evaluation talks to memory alone; only memory decides
whether a lookup, a read or a write passes through to the disk.
Each one the node variables/<name>: a b literal or span reads bpm and meter, and a
deg call reads key, its tonic, and scale, a built-in scale’s name or a ref to the
scale file it counts in.
Every answer says which reading ran, under which profile, and at what rate.
A reading that truncated a series names what it left out, so the kept list is never read
as the whole of it.
An engine refusal inside what a moving lane reaches is the lane’s: reported at the move,
with the engine’s code, message and help, the lane and the instance’s placement chain.
Every call resolved. An answer keys each reading by its name, so a name asked twice
would print one key twice and a JSON reader would keep only the last; it refuses.
A comma list of calls; a comma inside a call’s parentheses separates its arguments, and
one inside an alsa: device name, hw:1,0, stays in it where no reading follows it.
target, an expression over source with no interval of its own, in place of what
stream plays. Each edit here is sva_engine::change’s: the stream plays on meanwhile.
{ "song", "events" }: the events song_data lists, without its marks, tempo, lanes and
size, whose count types the whole graph on the engine; what a page draws a roll from.
The collapse label beside the reading it belongs to. detail is the one
place a key may be absent: each rule is its own shape, and its fields belong to it.
{ "text", "outline" }, or the parser’s own refusal, located in the text. Score text, a
JSON line, has no one tree: it answers { "text", "score" }, one item per placed item.
A node path the source answers for is a node; anything else is math, and its reads are
roots. Only a node path is asked of the source: math is never looked up as a file.
computed counts every miss, stored the misses memory kept and replaced the volatile
misses kept in place of their last value; memory’s figures are as the render left it, and
tier what passed between memory and the disk meanwhile.
stats_json over a stream’s latest lookups, dropped: the latest nodes its live edits
started silent, and pruned: where it cuts below the silence threshold. Each list’s
pagination.count counts all it made.
root’s song lowered into graph: each instance a lane may move under is asked of the
engine for its span first, over the nodes no score sits under already lowered.