v1.7.0
Additive (MINOR) release: per-chord harmony annotations. Backward-compatible — a 1.0.0 pack is also
a valid 1.7.0 pack, and older readers ignore the new optional fields.
Added
- Per-chord harmony annotations (spec §6.3.1,
§6.6): two OPTIONAL fields that annotate a chord's
harmony for teaching/display, never grading (the honesty rule — a grader MUST NOT score
them) —fnon the chord instance ({rn, q, deg}: Roman-numeral label, quality token, and
the chord root's chromatic offset0–11above the activekeys.json
tonic, mirroringsd; the chord's as-played function, derivable so a Reader MAY compute it),
andvoicingon the chord template (a key-independent voicing-type string, e.g.open/
shell/drop2). Function rides the instance and voicing the template because the same shape
recurs across keys.fn's prose notes its boundary with a future song-level harmony track (the
intended progression). Schema:fnon$defs/chordandvoicingon$defs/templatein
schemas/arrangement.schema.json; exercised by the extended
example (an Em chord asviin G major).cagedandguideTonesfrom the FEP are deferred.