v1.10.0
Additive (MINOR) release: a song-level harmony track. Backward-compatible — a 1.0.0 pack is also a
valid 1.10.0 pack, and older readers ignore the new optional manifest key + side-file.
Added
- Song-level harmony track —
harmony.json(spec §7.8,
manifestharmonykey): the song's intended chord progression (the chords the song is,
independent of what any arrangement plays) — reference/teaching data for fretboard-theory
overlays, chord lyric lines, and practice-alongs. Time-ordered events applying until the next
(same shape askeys.json):t(required),root(absolute note name;nullmarks a
no-chord/N.C. event),quality,rn(Roman numeral relative to the activekeys.jsonkey,
omitted when no key is active), andbass(slash-chord bass). Voicing-free (does not index
arrangement chord templates) and honesty-ruled — a grader MUST NOT score against it. Defined
as distinct from per-chordfn(as-played function): a Reader MAY derive one from the other, but
neither is authoritative.quality/fn.qnow reference a shared (recommended, not closed)
chord-quality vocabulary so they stay interoperable. Schema:
schemas/harmony.schema.json; exercised by the extended example
(an Em→C→G→D7/F#→N.C. progression aligned to its Em/Gkeys.json). Implements #28.