[{"slug":"ZV-2026-0625","server_name":"music.zacharyr0th.com","severity":"breaking","title":"music.zacharyr0th.com: New required field intervalWord on analyze_cyclic_scale; requests without it will fail.","summary":"[breaking] New required field intervalWord on analyze_cyclic_scale; requests without it will fail. [breaking] New required field modulus on analyze_cyclic_scale; requests without it will fail. [risky] Optional field baseFrequency was added to calculate_equal_division_frequency; may shift model behaviour. [breaking] New required field division on calculate_equal_division_frequency; requests without it will fail. [breaking] New required field divisionsPerCycle on calculate_equal_division_frequency; requests without it will fail. [risky] Optional field rootSemitones was added to calculate_equal_division_frequency; may shift model behaviour. [breaking] New required field intervalWord on export_cyclic_scale_musicxml; requests without it will fail. [breaking] New required field modulus on export_cyclic_scale_musicxml; requests without it will fail. [risky] Optional field root was added to export_cyclic_scale_musicxml; may shift model behaviour. [risky] Optional field limitedTransposition was added to generate_cyclic_scales; may shift model behaviour. [breaking] New required field maxStep on generate_cyclic_scales; requests without it will fail. [breaking] New required field modulus on generate_cyclic_scales; requests without it will fail. [breaking] New required field notes on generate_cyclic_scales; requests without it will fail. [risky] Optional field reflection was added to generate_cyclic_scales; may shift model behaviour.","changes":[{"kind":"input_required_added","path":"inputSchema.properties.intervalWord","tool":"analyze_cyclic_scale","after":{"type":"array","items":{"type":"integer","maximum":16,"minimum":1},"maxItems":10,"minItems":2},"detail":"New required field `intervalWord` on `analyze_cyclic_scale`; requests without it will fail.","severity":"breaking"},{"kind":"input_required_added","path":"inputSchema.properties.modulus","tool":"analyze_cyclic_scale","after":{"type":"integer","maximum":16,"minimum":5},"detail":"New required field `modulus` on `analyze_cyclic_scale`; requests without it will fail.","severity":"breaking"},{"kind":"input_property_added","path":"inputSchema.properties.baseFrequency","tool":"calculate_equal_division_frequency","after":{"type":"number","default":261.63,"maximum":20000,"minimum":20},"detail":"Optional field `baseFrequency` was added to `calculate_equal_division_frequency`; may shift model behaviour.","severity":"risky"},{"kind":"input_required_added","path":"inputSchema.properties.division","tool":"calculate_equal_division_frequency","after":{"type":"number","maximum":16,"minimum":0},"detail":"New required field `division` on `calculate_equal_division_frequency`; requests without it will fail.","severity":"breaking"},{"kind":"input_required_added","path":"inputSchema.properties.divisionsPerCycle","tool":"calculate_equal_division_frequency","after":{"type":"integer","maximum":16,"minimum":5},"detail":"New required field `divisionsPerCycle` on `calculate_equal_division_frequency`; requests without it will fail.","severity":"breaking"},{"kind":"input_property_added","path":"inputSchema.properties.rootSemitones","tool":"calculate_equal_division_frequency","after":{"type":"integer","default":0,"maximum":11,"minimum":0},"detail":"Optional field `rootSemitones` was added to `calculate_equal_division_frequency`; may shift model behaviour.","severity":"risky"},{"kind":"input_required_added","path":"inputSchema.properties.intervalWord","tool":"export_cyclic_scale_musicxml","after":{"type":"array","items":{"type":"integer","maximum":16,"minimum":1},"maxItems":10,"minItems":2},"detail":"New required field `intervalWord` on `export_cyclic_scale_musicxml`; requests without it will fail.","severity":"breaking"},{"kind":"input_required_added","path":"inputSchema.properties.modulus","tool":"export_cyclic_scale_musicxml","after":{"type":"number","const":12},"detail":"New required field `modulus` on `export_cyclic_scale_musicxml`; requests without it will fail.","severity":"breaking"},{"kind":"input_property_added","path":"inputSchema.properties.root","tool":"export_cyclic_scale_musicxml","after":{"type":"integer","default":0,"maximum":11,"minimum":0},"detail":"Optional field `root` was added to `export_cyclic_scale_musicxml`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.limitedTransposition","tool":"generate_cyclic_scales","after":{"enum":["any","yes","no"],"type":"string","default":"any"},"detail":"Optional field `limitedTransposition` was added to `generate_cyclic_scales`; may shift model behaviour.","severity":"risky"},{"kind":"input_required_added","path":"inputSchema.properties.maxStep","tool":"generate_cyclic_scales","after":{"type":"integer","maximum":8,"minimum":1},"detail":"New required field `maxStep` on `generate_cyclic_scales`; requests without it will fail.","severity":"breaking"},{"kind":"input_required_added","path":"inputSchema.properties.modulus","tool":"generate_cyclic_scales","after":{"type":"integer","maximum":16,"minimum":5},"detail":"New required field `modulus` on `generate_cyclic_scales`; requests without it will fail.","severity":"breaking"},{"kind":"input_required_added","path":"inputSchema.properties.notes","tool":"generate_cyclic_scales","after":{"type":"integer","maximum":10,"minimum":2},"detail":"New required field `notes` on `generate_cyclic_scales`; requests without it will fail.","severity":"breaking"},{"kind":"input_property_added","path":"inputSchema.properties.reflection","tool":"generate_cyclic_scales","after":{"enum":["any","mixed","self","paired","external"],"type":"string","default":"any"},"detail":"Optional field `reflection` was added to `generate_cyclic_scales`; may shift model behaviour.","severity":"risky"}],"published_at":"2026-09-02T06:09:10.786Z"}]