@viritura/score-engine 0.2.1-next.37 → 0.2.1-next.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -485,7 +485,24 @@ function parseRoot(step, accidental) {
485
485
  let normalized = accidental.replaceAll("\u266D", "b").replaceAll("\u266F", "#"), alter = normalized === "x" || normalized === "\u{1D12A}" ? 2 : normalized === "\u{1D12B}" ? -2 : [...normalized].reduce((sum, token) => sum + (token === "#" ? 1 : -1), 0);
486
486
  return alter === 0 ? { step: step.toUpperCase() } : { step: step.toUpperCase(), alter };
487
487
  }
488
- var CHORD_TEXT_PATTERN = /^(\s*)([A-Ga-g])((?:#+|b+|♯+|♭+|x|𝄪|𝄫)?)([^/]*?)(?:\/([A-Ga-g])((?:#+|b+|♯+|♭+|x|𝄪|𝄫)?))?(\s*)$/u;
488
+ var ROOT_PREFIX_PATTERN = /^([A-Ga-g])((?:#+|b+|♯+|♭+|x|𝄪|𝄫)?)/u;
489
+ function splitChordSymbolText(input) {
490
+ let withoutLeadingWhitespace = input.trimStart(), content = withoutLeadingWhitespace.trimEnd(), slash = content.indexOf("/"), head = slash < 0 ? content : content.slice(0, slash), root = ROOT_PREFIX_PATTERN.exec(head);
491
+ if (!root) return;
492
+ let bass;
493
+ if (slash >= 0) {
494
+ let bassText = content.slice(slash + 1), bassMatch = ROOT_PREFIX_PATTERN.exec(bassText);
495
+ if (!bassMatch || bassMatch[0].length !== bassText.length) return;
496
+ bass = parseRoot(bassMatch[1], bassMatch[2] ?? "");
497
+ }
498
+ return {
499
+ leadingWhitespace: input.slice(0, input.length - withoutLeadingWhitespace.length),
500
+ root: parseRoot(root[1], root[2] ?? ""),
501
+ suffix: head.slice(root[0].length),
502
+ bass,
503
+ trailingWhitespace: withoutLeadingWhitespace.slice(content.length)
504
+ };
505
+ }
489
506
  function isNoChordText(text) {
490
507
  return /^(?:NC|N\.C\.?)$/i.test(text.trim());
491
508
  }
@@ -572,15 +589,15 @@ function parseQuality(text) {
572
589
  return base.quality === "major" && base.extension === void 0 && modifiers.added.length === 1 && modifiers.added[0] === 6 && modifiers.omitted.length === 0 ? { quality: "major", extension: 6 } : { ...base, modifiers };
573
590
  }
574
591
  function parseChordSymbolText(input, position) {
575
- let match = CHORD_TEXT_PATTERN.exec(input);
576
- if (!match) return { position, rawText: input };
577
- let root = parseRoot(match[2], match[3] ?? ""), parsedQuality = parseQuality(match[4] ?? ""), chord = {
592
+ let parts = splitChordSymbolText(input);
593
+ if (!parts) return { position, rawText: input };
594
+ let parsedQuality = parseQuality(parts.suffix), chord = {
578
595
  position,
579
596
  rawText: input,
580
- root,
597
+ root: parts.root,
581
598
  quality: parsedQuality?.quality ?? "other"
582
599
  };
583
- return (!parsedQuality || parsedQuality.modifiers) && (chord.kindText = match[4]), parsedQuality?.extension !== void 0 && (chord.extension = parsedQuality.extension), match[5] && (chord.bass = parseRoot(match[5], match[6] ?? "")), chord;
600
+ return (!parsedQuality || parsedQuality.modifiers) && (chord.kindText = parts.suffix), parsedQuality?.extension !== void 0 && (chord.extension = parsedQuality.extension), parts.bass && (chord.bass = parts.bass), chord;
584
601
  }
585
602
 
586
603
  // packages/core/src/operations/lyricExtenders.ts
@@ -2214,9 +2231,9 @@ function interpolateBeatAnchors(bounds, beat, endX) {
2214
2231
 
2215
2232
  // packages/score-engine/src/buildInfo.ts
2216
2233
  init_define_import_meta_env();
2217
- var PACKAGE_VERSION = "0.2.1-next.37", BUNDLE_WORKER_FILE = "score-engine.worker.js";
2234
+ var PACKAGE_VERSION = "0.2.1-next.39", BUNDLE_WORKER_FILE = "score-engine.worker.js";
2218
2235
  function buildCommit() {
2219
- return "8f63539c0798b1a1d9ac21d48ae6f57b3c8d117a";
2236
+ return "c83a57c32642a6e875c34211c98b01efcc8f3132";
2220
2237
  }
2221
2238
  function bundledAssetBase() {
2222
2239
  let moduleUrl = import.meta.url;
@@ -9184,8 +9201,9 @@ function validate371(data, { instancePath = "", parentData, parentDataProperty,
9184
9201
  return validate371.errors = vErrors, errors === 0;
9185
9202
  }
9186
9203
  validate371.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
9187
- var schema378 = { type: "object", description: "A rehearsal mark displayed above the staff (e.g. 'A', 'B', '1'). Typically rendered in a box or circle.", required: ["text"], properties: { text: { $ref: "#/$defs/text-content" }, style: { type: "string", enum: ["boxed", "circled", "plain"], description: "Display style. Default: 'boxed'." }, manualOffset: { $ref: "#/$defs/sp-delta", description: "Manual [dx, dy] offset in spatia (sp); +x right, +y up." }, avoidCollisions: { type: "boolean", description: "Whether automatic collision avoidance may re-flow this mark. Default/unset: true." } }, additionalProperties: !1 };
9188
- var schema381 = { type: "object", description: "Inline text formatting. Omitted fields inherit the owning text role's style.", properties: { font: { type: "string", enum: ["serif", "sans-serif", "monospace"] }, size: { type: "number", exclusiveMinimum: 0, maximum: 12, description: "Relative size as a multiple of the owning text role's resolved size (the CSS 'em' equivalent), not an absolute point size. Distinct from text-style.size, which counts staff spaces for a whole role." }, weight: { oneOf: [{ type: "string", enum: ["normal", "bold"] }, { type: "number", minimum: 1, maximum: 1e3 }] }, fontStyle: { type: "string", enum: ["normal", "italic", "oblique"] }, decorations: { type: "array", description: "Line decorations applied together. A set rather than a single value, because both MusicXML and Finale treat underline, overline and strikethrough as independent.", items: { type: "string", enum: ["underline", "overline", "strikethrough"] }, uniqueItems: !0, minItems: 1 }, enclosure: { type: "string", enum: ["box", "circle"] }, color: { type: "string", pattern: "^#[0-9a-fA-F]{6}$" } }, additionalProperties: !1 };
9204
+ var measureGlobalExtensions = validate401;
9205
+ var schema378 = { type: "object", description: "Unified tempo marking. BPM and value must occur together; without them an explicit swing instruction is required.", properties: { bpm: { type: "number", exclusiveMinimum: 0 }, value: { type: "object", required: ["base"], properties: { base: { type: "string", enum: ["duplexMaxima", "maxima", "longa", "breve", "whole", "half", "quarter", "eighth", "16th", "32nd", "64th", "128th", "256th", "512th", "1024th", "2048th", "4096th"] }, dots: { type: "integer", minimum: 0 } }, additionalProperties: !1 }, location: { type: "object", required: ["fraction"], properties: { fraction: { type: "array", prefixItems: [{ type: "integer", minimum: 0, maximum: 9007199254740991 }, { type: "integer", minimum: 1, maximum: 9007199254740991 }], items: !1, minItems: 2, maxItems: 2 } }, additionalProperties: !1 }, swing: { $ref: "#/$defs/swing" }, text: { $ref: "#/$defs/text-content" }, showMetronomeMark: { type: "boolean" }, showText: { type: "boolean" }, manualOffset: { $ref: "#/$defs/sp-delta" }, avoidCollisions: { type: "boolean" } }, oneOf: [{ required: ["bpm", "value"] }, { required: ["swing"], not: { anyOf: [{ required: ["bpm"] }, { required: ["value"] }] } }], additionalProperties: !1 }, schema379 = { description: "Explicit rhythm instruction, independent of the metronome beat unit. Omission means inherit; straight explicitly resets swing.", oneOf: [{ type: "object", required: ["mode"], properties: { mode: { const: "straight", type: "string" } }, additionalProperties: !1 }, { type: "object", required: ["mode", "subdivision", "ratio"], properties: { mode: { const: "swing", type: "string" }, subdivision: { type: "string", enum: ["eighth", "16th"] }, ratio: { type: "array", items: { type: "integer", minimum: 1, maximum: 9007199254740991 }, minItems: 2, maxItems: 2, description: "Exact positive long:short ratio, not a percentage or a guessed source value." } }, additionalProperties: !1 }] };
9206
+ var schema382 = { type: "object", description: "Inline text formatting. Omitted fields inherit the owning text role's style.", properties: { font: { type: "string", enum: ["serif", "sans-serif", "monospace"] }, size: { type: "number", exclusiveMinimum: 0, maximum: 12, description: "Relative size as a multiple of the owning text role's resolved size (the CSS 'em' equivalent), not an absolute point size. Distinct from text-style.size, which counts staff spaces for a whole role." }, weight: { oneOf: [{ type: "string", enum: ["normal", "bold"] }, { type: "number", minimum: 1, maximum: 1e3 }] }, fontStyle: { type: "string", enum: ["normal", "italic", "oblique"] }, decorations: { type: "array", description: "Line decorations applied together. A set rather than a single value, because both MusicXML and Finale treat underline, overline and strikethrough as independent.", items: { type: "string", enum: ["underline", "overline", "strikethrough"] }, uniqueItems: !0, minItems: 1 }, enclosure: { type: "string", enum: ["box", "circle"] }, color: { type: "string", pattern: "^#[0-9a-fA-F]{6}$" } }, additionalProperties: !1 };
9189
9207
  function validate404(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
9190
9208
  let vErrors = null, errors = 0, evaluated0 = validate404.evaluated;
9191
9209
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
@@ -9217,7 +9235,7 @@ function validate404(data, { instancePath = "", parentData, parentDataProperty,
9217
9235
  vErrors === null ? vErrors = [err4] : vErrors.push(err4), errors++;
9218
9236
  }
9219
9237
  if (!(data2 === "serif" || data2 === "sans-serif" || data2 === "monospace")) {
9220
- let err5 = { instancePath: instancePath + "/style/font", schemaPath: "#/$defs/text-run-style/properties/font/enum", keyword: "enum", params: { allowedValues: schema381.properties.font.enum }, message: "must be equal to one of the allowed values" };
9238
+ let err5 = { instancePath: instancePath + "/style/font", schemaPath: "#/$defs/text-run-style/properties/font/enum", keyword: "enum", params: { allowedValues: schema382.properties.font.enum }, message: "must be equal to one of the allowed values" };
9221
9239
  vErrors === null ? vErrors = [err5] : vErrors.push(err5), errors++;
9222
9240
  }
9223
9241
  }
@@ -9244,7 +9262,7 @@ function validate404(data, { instancePath = "", parentData, parentDataProperty,
9244
9262
  vErrors === null ? vErrors = [err9] : vErrors.push(err9), errors++;
9245
9263
  }
9246
9264
  if (!(data4 === "normal" || data4 === "bold")) {
9247
- let err10 = { instancePath: instancePath + "/style/weight", schemaPath: "#/$defs/text-run-style/properties/weight/oneOf/0/enum", keyword: "enum", params: { allowedValues: schema381.properties.weight.oneOf[0].enum }, message: "must be equal to one of the allowed values" };
9265
+ let err10 = { instancePath: instancePath + "/style/weight", schemaPath: "#/$defs/text-run-style/properties/weight/oneOf/0/enum", keyword: "enum", params: { allowedValues: schema382.properties.weight.oneOf[0].enum }, message: "must be equal to one of the allowed values" };
9248
9266
  vErrors === null ? vErrors = [err10] : vErrors.push(err10), errors++;
9249
9267
  }
9250
9268
  var _valid0 = _errs14 === errors;
@@ -9278,7 +9296,7 @@ function validate404(data, { instancePath = "", parentData, parentDataProperty,
9278
9296
  vErrors === null ? vErrors = [err15] : vErrors.push(err15), errors++;
9279
9297
  }
9280
9298
  if (!(data5 === "normal" || data5 === "italic" || data5 === "oblique")) {
9281
- let err16 = { instancePath: instancePath + "/style/fontStyle", schemaPath: "#/$defs/text-run-style/properties/fontStyle/enum", keyword: "enum", params: { allowedValues: schema381.properties.fontStyle.enum }, message: "must be equal to one of the allowed values" };
9299
+ let err16 = { instancePath: instancePath + "/style/fontStyle", schemaPath: "#/$defs/text-run-style/properties/fontStyle/enum", keyword: "enum", params: { allowedValues: schema382.properties.fontStyle.enum }, message: "must be equal to one of the allowed values" };
9282
9300
  vErrors === null ? vErrors = [err16] : vErrors.push(err16), errors++;
9283
9301
  }
9284
9302
  }
@@ -9297,7 +9315,7 @@ function validate404(data, { instancePath = "", parentData, parentDataProperty,
9297
9315
  vErrors === null ? vErrors = [err18] : vErrors.push(err18), errors++;
9298
9316
  }
9299
9317
  if (!(data7 === "underline" || data7 === "overline" || data7 === "strikethrough")) {
9300
- let err19 = { instancePath: instancePath + "/style/decorations/" + i0, schemaPath: "#/$defs/text-run-style/properties/decorations/items/enum", keyword: "enum", params: { allowedValues: schema381.properties.decorations.items.enum }, message: "must be equal to one of the allowed values" };
9318
+ let err19 = { instancePath: instancePath + "/style/decorations/" + i0, schemaPath: "#/$defs/text-run-style/properties/decorations/items/enum", keyword: "enum", params: { allowedValues: schema382.properties.decorations.items.enum }, message: "must be equal to one of the allowed values" };
9301
9319
  vErrors === null ? vErrors = [err19] : vErrors.push(err19), errors++;
9302
9320
  }
9303
9321
  }
@@ -9329,7 +9347,7 @@ function validate404(data, { instancePath = "", parentData, parentDataProperty,
9329
9347
  vErrors === null ? vErrors = [err22] : vErrors.push(err22), errors++;
9330
9348
  }
9331
9349
  if (!(data8 === "box" || data8 === "circle")) {
9332
- let err23 = { instancePath: instancePath + "/style/enclosure", schemaPath: "#/$defs/text-run-style/properties/enclosure/enum", keyword: "enum", params: { allowedValues: schema381.properties.enclosure.enum }, message: "must be equal to one of the allowed values" };
9350
+ let err23 = { instancePath: instancePath + "/style/enclosure", schemaPath: "#/$defs/text-run-style/properties/enclosure/enum", keyword: "enum", params: { allowedValues: schema382.properties.enclosure.enum }, message: "must be equal to one of the allowed values" };
9333
9351
  vErrors === null ? vErrors = [err23] : vErrors.push(err23), errors++;
9334
9352
  }
9335
9353
  }
@@ -9409,7 +9427,7 @@ function validate406(data, { instancePath = "", parentData, parentDataProperty,
9409
9427
  vErrors === null ? vErrors = [err7] : vErrors.push(err7), errors++;
9410
9428
  }
9411
9429
  if (!(data3 === "serif" || data3 === "sans-serif" || data3 === "monospace")) {
9412
- let err8 = { instancePath: instancePath + "/style/font", schemaPath: "#/$defs/text-run-style/properties/font/enum", keyword: "enum", params: { allowedValues: schema381.properties.font.enum }, message: "must be equal to one of the allowed values" };
9430
+ let err8 = { instancePath: instancePath + "/style/font", schemaPath: "#/$defs/text-run-style/properties/font/enum", keyword: "enum", params: { allowedValues: schema382.properties.font.enum }, message: "must be equal to one of the allowed values" };
9413
9431
  vErrors === null ? vErrors = [err8] : vErrors.push(err8), errors++;
9414
9432
  }
9415
9433
  }
@@ -9436,7 +9454,7 @@ function validate406(data, { instancePath = "", parentData, parentDataProperty,
9436
9454
  vErrors === null ? vErrors = [err12] : vErrors.push(err12), errors++;
9437
9455
  }
9438
9456
  if (!(data5 === "normal" || data5 === "bold")) {
9439
- let err13 = { instancePath: instancePath + "/style/weight", schemaPath: "#/$defs/text-run-style/properties/weight/oneOf/0/enum", keyword: "enum", params: { allowedValues: schema381.properties.weight.oneOf[0].enum }, message: "must be equal to one of the allowed values" };
9457
+ let err13 = { instancePath: instancePath + "/style/weight", schemaPath: "#/$defs/text-run-style/properties/weight/oneOf/0/enum", keyword: "enum", params: { allowedValues: schema382.properties.weight.oneOf[0].enum }, message: "must be equal to one of the allowed values" };
9440
9458
  vErrors === null ? vErrors = [err13] : vErrors.push(err13), errors++;
9441
9459
  }
9442
9460
  var _valid0 = _errs16 === errors;
@@ -9470,7 +9488,7 @@ function validate406(data, { instancePath = "", parentData, parentDataProperty,
9470
9488
  vErrors === null ? vErrors = [err18] : vErrors.push(err18), errors++;
9471
9489
  }
9472
9490
  if (!(data6 === "normal" || data6 === "italic" || data6 === "oblique")) {
9473
- let err19 = { instancePath: instancePath + "/style/fontStyle", schemaPath: "#/$defs/text-run-style/properties/fontStyle/enum", keyword: "enum", params: { allowedValues: schema381.properties.fontStyle.enum }, message: "must be equal to one of the allowed values" };
9491
+ let err19 = { instancePath: instancePath + "/style/fontStyle", schemaPath: "#/$defs/text-run-style/properties/fontStyle/enum", keyword: "enum", params: { allowedValues: schema382.properties.fontStyle.enum }, message: "must be equal to one of the allowed values" };
9474
9492
  vErrors === null ? vErrors = [err19] : vErrors.push(err19), errors++;
9475
9493
  }
9476
9494
  }
@@ -9489,7 +9507,7 @@ function validate406(data, { instancePath = "", parentData, parentDataProperty,
9489
9507
  vErrors === null ? vErrors = [err21] : vErrors.push(err21), errors++;
9490
9508
  }
9491
9509
  if (!(data8 === "underline" || data8 === "overline" || data8 === "strikethrough")) {
9492
- let err22 = { instancePath: instancePath + "/style/decorations/" + i1, schemaPath: "#/$defs/text-run-style/properties/decorations/items/enum", keyword: "enum", params: { allowedValues: schema381.properties.decorations.items.enum }, message: "must be equal to one of the allowed values" };
9510
+ let err22 = { instancePath: instancePath + "/style/decorations/" + i1, schemaPath: "#/$defs/text-run-style/properties/decorations/items/enum", keyword: "enum", params: { allowedValues: schema382.properties.decorations.items.enum }, message: "must be equal to one of the allowed values" };
9493
9511
  vErrors === null ? vErrors = [err22] : vErrors.push(err22), errors++;
9494
9512
  }
9495
9513
  }
@@ -9521,7 +9539,7 @@ function validate406(data, { instancePath = "", parentData, parentDataProperty,
9521
9539
  vErrors === null ? vErrors = [err25] : vErrors.push(err25), errors++;
9522
9540
  }
9523
9541
  if (!(data9 === "box" || data9 === "circle")) {
9524
- let err26 = { instancePath: instancePath + "/style/enclosure", schemaPath: "#/$defs/text-run-style/properties/enclosure/enum", keyword: "enum", params: { allowedValues: schema381.properties.enclosure.enum }, message: "must be equal to one of the allowed values" };
9542
+ let err26 = { instancePath: instancePath + "/style/enclosure", schemaPath: "#/$defs/text-run-style/properties/enclosure/enum", keyword: "enum", params: { allowedValues: schema382.properties.enclosure.enum }, message: "must be equal to one of the allowed values" };
9525
9543
  vErrors === null ? vErrors = [err26] : vErrors.push(err26), errors++;
9526
9544
  }
9527
9545
  }
@@ -9557,7 +9575,7 @@ function validate406(data, { instancePath = "", parentData, parentDataProperty,
9557
9575
  vErrors === null ? vErrors = [err31] : vErrors.push(err31), errors++;
9558
9576
  }
9559
9577
  if (!(data12 === "serif" || data12 === "sans-serif" || data12 === "monospace")) {
9560
- let err32 = { instancePath: instancePath + "/smuflStyle/font", schemaPath: "#/$defs/text-run-style/properties/font/enum", keyword: "enum", params: { allowedValues: schema381.properties.font.enum }, message: "must be equal to one of the allowed values" };
9578
+ let err32 = { instancePath: instancePath + "/smuflStyle/font", schemaPath: "#/$defs/text-run-style/properties/font/enum", keyword: "enum", params: { allowedValues: schema382.properties.font.enum }, message: "must be equal to one of the allowed values" };
9561
9579
  vErrors === null ? vErrors = [err32] : vErrors.push(err32), errors++;
9562
9580
  }
9563
9581
  }
@@ -9584,7 +9602,7 @@ function validate406(data, { instancePath = "", parentData, parentDataProperty,
9584
9602
  vErrors === null ? vErrors = [err36] : vErrors.push(err36), errors++;
9585
9603
  }
9586
9604
  if (!(data14 === "normal" || data14 === "bold")) {
9587
- let err37 = { instancePath: instancePath + "/smuflStyle/weight", schemaPath: "#/$defs/text-run-style/properties/weight/oneOf/0/enum", keyword: "enum", params: { allowedValues: schema381.properties.weight.oneOf[0].enum }, message: "must be equal to one of the allowed values" };
9605
+ let err37 = { instancePath: instancePath + "/smuflStyle/weight", schemaPath: "#/$defs/text-run-style/properties/weight/oneOf/0/enum", keyword: "enum", params: { allowedValues: schema382.properties.weight.oneOf[0].enum }, message: "must be equal to one of the allowed values" };
9588
9606
  vErrors === null ? vErrors = [err37] : vErrors.push(err37), errors++;
9589
9607
  }
9590
9608
  var _valid1 = _errs40 === errors;
@@ -9618,7 +9636,7 @@ function validate406(data, { instancePath = "", parentData, parentDataProperty,
9618
9636
  vErrors === null ? vErrors = [err42] : vErrors.push(err42), errors++;
9619
9637
  }
9620
9638
  if (!(data15 === "normal" || data15 === "italic" || data15 === "oblique")) {
9621
- let err43 = { instancePath: instancePath + "/smuflStyle/fontStyle", schemaPath: "#/$defs/text-run-style/properties/fontStyle/enum", keyword: "enum", params: { allowedValues: schema381.properties.fontStyle.enum }, message: "must be equal to one of the allowed values" };
9639
+ let err43 = { instancePath: instancePath + "/smuflStyle/fontStyle", schemaPath: "#/$defs/text-run-style/properties/fontStyle/enum", keyword: "enum", params: { allowedValues: schema382.properties.fontStyle.enum }, message: "must be equal to one of the allowed values" };
9622
9640
  vErrors === null ? vErrors = [err43] : vErrors.push(err43), errors++;
9623
9641
  }
9624
9642
  }
@@ -9637,7 +9655,7 @@ function validate406(data, { instancePath = "", parentData, parentDataProperty,
9637
9655
  vErrors === null ? vErrors = [err45] : vErrors.push(err45), errors++;
9638
9656
  }
9639
9657
  if (!(data17 === "underline" || data17 === "overline" || data17 === "strikethrough")) {
9640
- let err46 = { instancePath: instancePath + "/smuflStyle/decorations/" + i3, schemaPath: "#/$defs/text-run-style/properties/decorations/items/enum", keyword: "enum", params: { allowedValues: schema381.properties.decorations.items.enum }, message: "must be equal to one of the allowed values" };
9658
+ let err46 = { instancePath: instancePath + "/smuflStyle/decorations/" + i3, schemaPath: "#/$defs/text-run-style/properties/decorations/items/enum", keyword: "enum", params: { allowedValues: schema382.properties.decorations.items.enum }, message: "must be equal to one of the allowed values" };
9641
9659
  vErrors === null ? vErrors = [err46] : vErrors.push(err46), errors++;
9642
9660
  }
9643
9661
  }
@@ -9669,7 +9687,7 @@ function validate406(data, { instancePath = "", parentData, parentDataProperty,
9669
9687
  vErrors === null ? vErrors = [err49] : vErrors.push(err49), errors++;
9670
9688
  }
9671
9689
  if (!(data18 === "box" || data18 === "circle")) {
9672
- let err50 = { instancePath: instancePath + "/smuflStyle/enclosure", schemaPath: "#/$defs/text-run-style/properties/enclosure/enum", keyword: "enum", params: { allowedValues: schema381.properties.enclosure.enum }, message: "must be equal to one of the allowed values" };
9690
+ let err50 = { instancePath: instancePath + "/smuflStyle/enclosure", schemaPath: "#/$defs/text-run-style/properties/enclosure/enum", keyword: "enum", params: { allowedValues: schema382.properties.enclosure.enum }, message: "must be equal to one of the allowed values" };
9673
9691
  vErrors === null ? vErrors = [err50] : vErrors.push(err50), errors++;
9674
9692
  }
9675
9693
  }
@@ -9728,6 +9746,354 @@ function validate403(data, { instancePath = "", parentData, parentDataProperty,
9728
9746
  validate403.evaluated = { items: !0, dynamicProps: !1, dynamicItems: !1 };
9729
9747
  function validate402(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
9730
9748
  let vErrors = null, errors = 0, evaluated0 = validate402.evaluated;
9749
+ evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0);
9750
+ let _errs1 = errors, valid0 = !1, passing0 = null, _errs2 = errors;
9751
+ if (data && typeof data == "object" && !Array.isArray(data)) {
9752
+ if (data.bpm === void 0) {
9753
+ let err0 = { instancePath, schemaPath: "#/oneOf/0/required", keyword: "required", params: { missingProperty: "bpm" }, message: "must have required property 'bpm'" };
9754
+ vErrors === null ? vErrors = [err0] : vErrors.push(err0), errors++;
9755
+ }
9756
+ if (data.value === void 0) {
9757
+ let err1 = { instancePath, schemaPath: "#/oneOf/0/required", keyword: "required", params: { missingProperty: "value" }, message: "must have required property 'value'" };
9758
+ vErrors === null ? vErrors = [err1] : vErrors.push(err1), errors++;
9759
+ }
9760
+ }
9761
+ var _valid0 = _errs2 === errors;
9762
+ _valid0 && (valid0 = !0, passing0 = 0);
9763
+ let _errs3 = errors, _errs4 = errors, _errs5 = errors, _errs6 = errors, valid2 = !1, _errs7 = errors;
9764
+ if (data && typeof data == "object" && !Array.isArray(data)) {
9765
+ let missing0;
9766
+ if (data.bpm === void 0 && (missing0 = "bpm")) {
9767
+ let err2 = {};
9768
+ vErrors === null ? vErrors = [err2] : vErrors.push(err2), errors++;
9769
+ }
9770
+ }
9771
+ var _valid1 = _errs7 === errors;
9772
+ valid2 = valid2 || _valid1;
9773
+ let _errs8 = errors;
9774
+ if (data && typeof data == "object" && !Array.isArray(data)) {
9775
+ let missing1;
9776
+ if (data.value === void 0 && (missing1 = "value")) {
9777
+ let err3 = {};
9778
+ vErrors === null ? vErrors = [err3] : vErrors.push(err3), errors++;
9779
+ }
9780
+ }
9781
+ var _valid1 = _errs8 === errors;
9782
+ if (valid2 = valid2 || _valid1, valid2)
9783
+ errors = _errs6, vErrors !== null && (_errs6 ? vErrors.length = _errs6 : vErrors = null);
9784
+ else {
9785
+ let err4 = {};
9786
+ vErrors === null ? vErrors = [err4] : vErrors.push(err4), errors++;
9787
+ }
9788
+ var valid1 = _errs5 === errors;
9789
+ if (valid1) {
9790
+ let err5 = { instancePath, schemaPath: "#/oneOf/1/not", keyword: "not", params: {}, message: "must NOT be valid" };
9791
+ vErrors === null ? vErrors = [err5] : vErrors.push(err5), errors++;
9792
+ } else
9793
+ errors = _errs4, vErrors !== null && (_errs4 ? vErrors.length = _errs4 : vErrors = null);
9794
+ if (data && typeof data == "object" && !Array.isArray(data) && data.swing === void 0) {
9795
+ let err6 = { instancePath, schemaPath: "#/oneOf/1/required", keyword: "required", params: { missingProperty: "swing" }, message: "must have required property 'swing'" };
9796
+ vErrors === null ? vErrors = [err6] : vErrors.push(err6), errors++;
9797
+ }
9798
+ var _valid0 = _errs3 === errors;
9799
+ if (_valid0 && valid0 ? (valid0 = !1, passing0 = [passing0, 1]) : _valid0 && (valid0 = !0, passing0 = 1), valid0)
9800
+ errors = _errs1, vErrors !== null && (_errs1 ? vErrors.length = _errs1 : vErrors = null);
9801
+ else {
9802
+ let err7 = { instancePath, schemaPath: "#/oneOf", keyword: "oneOf", params: { passingSchemas: passing0 }, message: "must match exactly one schema in oneOf" };
9803
+ vErrors === null ? vErrors = [err7] : vErrors.push(err7), errors++;
9804
+ }
9805
+ if (data && typeof data == "object" && !Array.isArray(data)) {
9806
+ for (let key0 in data)
9807
+ if (!func1.call(schema378.properties, key0)) {
9808
+ let err8 = { instancePath, schemaPath: "#/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: key0 }, message: "must NOT have additional properties" };
9809
+ vErrors === null ? vErrors = [err8] : vErrors.push(err8), errors++;
9810
+ }
9811
+ if (data.bpm !== void 0) {
9812
+ let data0 = data.bpm;
9813
+ if (typeof data0 == "number") {
9814
+ if (data0 <= 0 || isNaN(data0)) {
9815
+ let err9 = { instancePath: instancePath + "/bpm", schemaPath: "#/properties/bpm/exclusiveMinimum", keyword: "exclusiveMinimum", params: { comparison: ">", limit: 0 }, message: "must be > 0" };
9816
+ vErrors === null ? vErrors = [err9] : vErrors.push(err9), errors++;
9817
+ }
9818
+ } else {
9819
+ let err10 = { instancePath: instancePath + "/bpm", schemaPath: "#/properties/bpm/type", keyword: "type", params: { type: "number" }, message: "must be number" };
9820
+ vErrors === null ? vErrors = [err10] : vErrors.push(err10), errors++;
9821
+ }
9822
+ }
9823
+ if (data.value !== void 0) {
9824
+ let data1 = data.value;
9825
+ if (data1 && typeof data1 == "object" && !Array.isArray(data1)) {
9826
+ if (data1.base === void 0) {
9827
+ let err11 = { instancePath: instancePath + "/value", schemaPath: "#/properties/value/required", keyword: "required", params: { missingProperty: "base" }, message: "must have required property 'base'" };
9828
+ vErrors === null ? vErrors = [err11] : vErrors.push(err11), errors++;
9829
+ }
9830
+ for (let key1 in data1)
9831
+ if (!(key1 === "base" || key1 === "dots")) {
9832
+ let err12 = { instancePath: instancePath + "/value", schemaPath: "#/properties/value/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: key1 }, message: "must NOT have additional properties" };
9833
+ vErrors === null ? vErrors = [err12] : vErrors.push(err12), errors++;
9834
+ }
9835
+ if (data1.base !== void 0) {
9836
+ let data2 = data1.base;
9837
+ if (typeof data2 != "string") {
9838
+ let err13 = { instancePath: instancePath + "/value/base", schemaPath: "#/properties/value/properties/base/type", keyword: "type", params: { type: "string" }, message: "must be string" };
9839
+ vErrors === null ? vErrors = [err13] : vErrors.push(err13), errors++;
9840
+ }
9841
+ if (!(data2 === "duplexMaxima" || data2 === "maxima" || data2 === "longa" || data2 === "breve" || data2 === "whole" || data2 === "half" || data2 === "quarter" || data2 === "eighth" || data2 === "16th" || data2 === "32nd" || data2 === "64th" || data2 === "128th" || data2 === "256th" || data2 === "512th" || data2 === "1024th" || data2 === "2048th" || data2 === "4096th")) {
9842
+ let err14 = { instancePath: instancePath + "/value/base", schemaPath: "#/properties/value/properties/base/enum", keyword: "enum", params: { allowedValues: schema378.properties.value.properties.base.enum }, message: "must be equal to one of the allowed values" };
9843
+ vErrors === null ? vErrors = [err14] : vErrors.push(err14), errors++;
9844
+ }
9845
+ }
9846
+ if (data1.dots !== void 0) {
9847
+ let data3 = data1.dots;
9848
+ if (!(typeof data3 == "number" && !(data3 % 1) && !isNaN(data3))) {
9849
+ let err15 = { instancePath: instancePath + "/value/dots", schemaPath: "#/properties/value/properties/dots/type", keyword: "type", params: { type: "integer" }, message: "must be integer" };
9850
+ vErrors === null ? vErrors = [err15] : vErrors.push(err15), errors++;
9851
+ }
9852
+ if (typeof data3 == "number" && (data3 < 0 || isNaN(data3))) {
9853
+ let err16 = { instancePath: instancePath + "/value/dots", schemaPath: "#/properties/value/properties/dots/minimum", keyword: "minimum", params: { comparison: ">=", limit: 0 }, message: "must be >= 0" };
9854
+ vErrors === null ? vErrors = [err16] : vErrors.push(err16), errors++;
9855
+ }
9856
+ }
9857
+ } else {
9858
+ let err17 = { instancePath: instancePath + "/value", schemaPath: "#/properties/value/type", keyword: "type", params: { type: "object" }, message: "must be object" };
9859
+ vErrors === null ? vErrors = [err17] : vErrors.push(err17), errors++;
9860
+ }
9861
+ }
9862
+ if (data.location !== void 0) {
9863
+ let data4 = data.location;
9864
+ if (data4 && typeof data4 == "object" && !Array.isArray(data4)) {
9865
+ if (data4.fraction === void 0) {
9866
+ let err18 = { instancePath: instancePath + "/location", schemaPath: "#/properties/location/required", keyword: "required", params: { missingProperty: "fraction" }, message: "must have required property 'fraction'" };
9867
+ vErrors === null ? vErrors = [err18] : vErrors.push(err18), errors++;
9868
+ }
9869
+ for (let key2 in data4)
9870
+ if (key2 !== "fraction") {
9871
+ let err19 = { instancePath: instancePath + "/location", schemaPath: "#/properties/location/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: key2 }, message: "must NOT have additional properties" };
9872
+ vErrors === null ? vErrors = [err19] : vErrors.push(err19), errors++;
9873
+ }
9874
+ if (data4.fraction !== void 0) {
9875
+ let data5 = data4.fraction;
9876
+ if (Array.isArray(data5)) {
9877
+ if (data5.length > 2) {
9878
+ let err20 = { instancePath: instancePath + "/location/fraction", schemaPath: "#/properties/location/properties/fraction/maxItems", keyword: "maxItems", params: { limit: 2 }, message: "must NOT have more than 2 items" };
9879
+ vErrors === null ? vErrors = [err20] : vErrors.push(err20), errors++;
9880
+ }
9881
+ if (data5.length < 2) {
9882
+ let err21 = { instancePath: instancePath + "/location/fraction", schemaPath: "#/properties/location/properties/fraction/minItems", keyword: "minItems", params: { limit: 2 }, message: "must NOT have fewer than 2 items" };
9883
+ vErrors === null ? vErrors = [err21] : vErrors.push(err21), errors++;
9884
+ }
9885
+ let len0 = data5.length;
9886
+ if (len0 > 0) {
9887
+ let data6 = data5[0];
9888
+ if (!(typeof data6 == "number" && !(data6 % 1) && !isNaN(data6))) {
9889
+ let err22 = { instancePath: instancePath + "/location/fraction/0", schemaPath: "#/properties/location/properties/fraction/prefixItems/0/type", keyword: "type", params: { type: "integer" }, message: "must be integer" };
9890
+ vErrors === null ? vErrors = [err22] : vErrors.push(err22), errors++;
9891
+ }
9892
+ if (typeof data6 == "number") {
9893
+ if (data6 > 9007199254740991 || isNaN(data6)) {
9894
+ let err23 = { instancePath: instancePath + "/location/fraction/0", schemaPath: "#/properties/location/properties/fraction/prefixItems/0/maximum", keyword: "maximum", params: { comparison: "<=", limit: 9007199254740991 }, message: "must be <= 9007199254740991" };
9895
+ vErrors === null ? vErrors = [err23] : vErrors.push(err23), errors++;
9896
+ }
9897
+ if (data6 < 0 || isNaN(data6)) {
9898
+ let err24 = { instancePath: instancePath + "/location/fraction/0", schemaPath: "#/properties/location/properties/fraction/prefixItems/0/minimum", keyword: "minimum", params: { comparison: ">=", limit: 0 }, message: "must be >= 0" };
9899
+ vErrors === null ? vErrors = [err24] : vErrors.push(err24), errors++;
9900
+ }
9901
+ }
9902
+ }
9903
+ if (len0 > 1) {
9904
+ let data7 = data5[1];
9905
+ if (!(typeof data7 == "number" && !(data7 % 1) && !isNaN(data7))) {
9906
+ let err25 = { instancePath: instancePath + "/location/fraction/1", schemaPath: "#/properties/location/properties/fraction/prefixItems/1/type", keyword: "type", params: { type: "integer" }, message: "must be integer" };
9907
+ vErrors === null ? vErrors = [err25] : vErrors.push(err25), errors++;
9908
+ }
9909
+ if (typeof data7 == "number") {
9910
+ if (data7 > 9007199254740991 || isNaN(data7)) {
9911
+ let err26 = { instancePath: instancePath + "/location/fraction/1", schemaPath: "#/properties/location/properties/fraction/prefixItems/1/maximum", keyword: "maximum", params: { comparison: "<=", limit: 9007199254740991 }, message: "must be <= 9007199254740991" };
9912
+ vErrors === null ? vErrors = [err26] : vErrors.push(err26), errors++;
9913
+ }
9914
+ if (data7 < 1 || isNaN(data7)) {
9915
+ let err27 = { instancePath: instancePath + "/location/fraction/1", schemaPath: "#/properties/location/properties/fraction/prefixItems/1/minimum", keyword: "minimum", params: { comparison: ">=", limit: 1 }, message: "must be >= 1" };
9916
+ vErrors === null ? vErrors = [err27] : vErrors.push(err27), errors++;
9917
+ }
9918
+ }
9919
+ }
9920
+ if (!(data5.length <= 2)) {
9921
+ let err28 = { instancePath: instancePath + "/location/fraction", schemaPath: "#/properties/location/properties/fraction/items", keyword: "items", params: { limit: 2 }, message: "must NOT have more than 2 items" };
9922
+ vErrors === null ? vErrors = [err28] : vErrors.push(err28), errors++;
9923
+ }
9924
+ } else {
9925
+ let err29 = { instancePath: instancePath + "/location/fraction", schemaPath: "#/properties/location/properties/fraction/type", keyword: "type", params: { type: "array" }, message: "must be array" };
9926
+ vErrors === null ? vErrors = [err29] : vErrors.push(err29), errors++;
9927
+ }
9928
+ }
9929
+ } else {
9930
+ let err30 = { instancePath: instancePath + "/location", schemaPath: "#/properties/location/type", keyword: "type", params: { type: "object" }, message: "must be object" };
9931
+ vErrors === null ? vErrors = [err30] : vErrors.push(err30), errors++;
9932
+ }
9933
+ }
9934
+ if (data.swing !== void 0) {
9935
+ let data8 = data.swing, _errs30 = errors, valid8 = !1, passing1 = null, _errs31 = errors;
9936
+ if (data8 && typeof data8 == "object" && !Array.isArray(data8)) {
9937
+ if (data8.mode === void 0) {
9938
+ let err31 = { instancePath: instancePath + "/swing", schemaPath: "#/$defs/swing/oneOf/0/required", keyword: "required", params: { missingProperty: "mode" }, message: "must have required property 'mode'" };
9939
+ vErrors === null ? vErrors = [err31] : vErrors.push(err31), errors++;
9940
+ }
9941
+ for (let key3 in data8)
9942
+ if (key3 !== "mode") {
9943
+ let err32 = { instancePath: instancePath + "/swing", schemaPath: "#/$defs/swing/oneOf/0/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: key3 }, message: "must NOT have additional properties" };
9944
+ vErrors === null ? vErrors = [err32] : vErrors.push(err32), errors++;
9945
+ }
9946
+ if (data8.mode !== void 0) {
9947
+ let data9 = data8.mode;
9948
+ if (typeof data9 != "string") {
9949
+ let err33 = { instancePath: instancePath + "/swing/mode", schemaPath: "#/$defs/swing/oneOf/0/properties/mode/type", keyword: "type", params: { type: "string" }, message: "must be string" };
9950
+ vErrors === null ? vErrors = [err33] : vErrors.push(err33), errors++;
9951
+ }
9952
+ if (data9 !== "straight") {
9953
+ let err34 = { instancePath: instancePath + "/swing/mode", schemaPath: "#/$defs/swing/oneOf/0/properties/mode/const", keyword: "const", params: { allowedValue: "straight" }, message: "must be equal to constant" };
9954
+ vErrors === null ? vErrors = [err34] : vErrors.push(err34), errors++;
9955
+ }
9956
+ }
9957
+ } else {
9958
+ let err35 = { instancePath: instancePath + "/swing", schemaPath: "#/$defs/swing/oneOf/0/type", keyword: "type", params: { type: "object" }, message: "must be object" };
9959
+ vErrors === null ? vErrors = [err35] : vErrors.push(err35), errors++;
9960
+ }
9961
+ var _valid2 = _errs31 === errors;
9962
+ if (_valid2) {
9963
+ valid8 = !0, passing1 = 0;
9964
+ var props0 = !0;
9965
+ }
9966
+ let _errs36 = errors;
9967
+ if (data8 && typeof data8 == "object" && !Array.isArray(data8)) {
9968
+ if (data8.mode === void 0) {
9969
+ let err36 = { instancePath: instancePath + "/swing", schemaPath: "#/$defs/swing/oneOf/1/required", keyword: "required", params: { missingProperty: "mode" }, message: "must have required property 'mode'" };
9970
+ vErrors === null ? vErrors = [err36] : vErrors.push(err36), errors++;
9971
+ }
9972
+ if (data8.subdivision === void 0) {
9973
+ let err37 = { instancePath: instancePath + "/swing", schemaPath: "#/$defs/swing/oneOf/1/required", keyword: "required", params: { missingProperty: "subdivision" }, message: "must have required property 'subdivision'" };
9974
+ vErrors === null ? vErrors = [err37] : vErrors.push(err37), errors++;
9975
+ }
9976
+ if (data8.ratio === void 0) {
9977
+ let err38 = { instancePath: instancePath + "/swing", schemaPath: "#/$defs/swing/oneOf/1/required", keyword: "required", params: { missingProperty: "ratio" }, message: "must have required property 'ratio'" };
9978
+ vErrors === null ? vErrors = [err38] : vErrors.push(err38), errors++;
9979
+ }
9980
+ for (let key4 in data8)
9981
+ if (!(key4 === "mode" || key4 === "subdivision" || key4 === "ratio")) {
9982
+ let err39 = { instancePath: instancePath + "/swing", schemaPath: "#/$defs/swing/oneOf/1/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: key4 }, message: "must NOT have additional properties" };
9983
+ vErrors === null ? vErrors = [err39] : vErrors.push(err39), errors++;
9984
+ }
9985
+ if (data8.mode !== void 0) {
9986
+ let data10 = data8.mode;
9987
+ if (typeof data10 != "string") {
9988
+ let err40 = { instancePath: instancePath + "/swing/mode", schemaPath: "#/$defs/swing/oneOf/1/properties/mode/type", keyword: "type", params: { type: "string" }, message: "must be string" };
9989
+ vErrors === null ? vErrors = [err40] : vErrors.push(err40), errors++;
9990
+ }
9991
+ if (data10 !== "swing") {
9992
+ let err41 = { instancePath: instancePath + "/swing/mode", schemaPath: "#/$defs/swing/oneOf/1/properties/mode/const", keyword: "const", params: { allowedValue: "swing" }, message: "must be equal to constant" };
9993
+ vErrors === null ? vErrors = [err41] : vErrors.push(err41), errors++;
9994
+ }
9995
+ }
9996
+ if (data8.subdivision !== void 0) {
9997
+ let data11 = data8.subdivision;
9998
+ if (typeof data11 != "string") {
9999
+ let err42 = { instancePath: instancePath + "/swing/subdivision", schemaPath: "#/$defs/swing/oneOf/1/properties/subdivision/type", keyword: "type", params: { type: "string" }, message: "must be string" };
10000
+ vErrors === null ? vErrors = [err42] : vErrors.push(err42), errors++;
10001
+ }
10002
+ if (!(data11 === "eighth" || data11 === "16th")) {
10003
+ let err43 = { instancePath: instancePath + "/swing/subdivision", schemaPath: "#/$defs/swing/oneOf/1/properties/subdivision/enum", keyword: "enum", params: { allowedValues: schema379.oneOf[1].properties.subdivision.enum }, message: "must be equal to one of the allowed values" };
10004
+ vErrors === null ? vErrors = [err43] : vErrors.push(err43), errors++;
10005
+ }
10006
+ }
10007
+ if (data8.ratio !== void 0) {
10008
+ let data12 = data8.ratio;
10009
+ if (Array.isArray(data12)) {
10010
+ if (data12.length > 2) {
10011
+ let err44 = { instancePath: instancePath + "/swing/ratio", schemaPath: "#/$defs/swing/oneOf/1/properties/ratio/maxItems", keyword: "maxItems", params: { limit: 2 }, message: "must NOT have more than 2 items" };
10012
+ vErrors === null ? vErrors = [err44] : vErrors.push(err44), errors++;
10013
+ }
10014
+ if (data12.length < 2) {
10015
+ let err45 = { instancePath: instancePath + "/swing/ratio", schemaPath: "#/$defs/swing/oneOf/1/properties/ratio/minItems", keyword: "minItems", params: { limit: 2 }, message: "must NOT have fewer than 2 items" };
10016
+ vErrors === null ? vErrors = [err45] : vErrors.push(err45), errors++;
10017
+ }
10018
+ let len2 = data12.length;
10019
+ for (let i0 = 0; i0 < len2; i0++) {
10020
+ let data13 = data12[i0];
10021
+ if (!(typeof data13 == "number" && !(data13 % 1) && !isNaN(data13))) {
10022
+ let err46 = { instancePath: instancePath + "/swing/ratio/" + i0, schemaPath: "#/$defs/swing/oneOf/1/properties/ratio/items/type", keyword: "type", params: { type: "integer" }, message: "must be integer" };
10023
+ vErrors === null ? vErrors = [err46] : vErrors.push(err46), errors++;
10024
+ }
10025
+ if (typeof data13 == "number") {
10026
+ if (data13 > 9007199254740991 || isNaN(data13)) {
10027
+ let err47 = { instancePath: instancePath + "/swing/ratio/" + i0, schemaPath: "#/$defs/swing/oneOf/1/properties/ratio/items/maximum", keyword: "maximum", params: { comparison: "<=", limit: 9007199254740991 }, message: "must be <= 9007199254740991" };
10028
+ vErrors === null ? vErrors = [err47] : vErrors.push(err47), errors++;
10029
+ }
10030
+ if (data13 < 1 || isNaN(data13)) {
10031
+ let err48 = { instancePath: instancePath + "/swing/ratio/" + i0, schemaPath: "#/$defs/swing/oneOf/1/properties/ratio/items/minimum", keyword: "minimum", params: { comparison: ">=", limit: 1 }, message: "must be >= 1" };
10032
+ vErrors === null ? vErrors = [err48] : vErrors.push(err48), errors++;
10033
+ }
10034
+ }
10035
+ }
10036
+ } else {
10037
+ let err49 = { instancePath: instancePath + "/swing/ratio", schemaPath: "#/$defs/swing/oneOf/1/properties/ratio/type", keyword: "type", params: { type: "array" }, message: "must be array" };
10038
+ vErrors === null ? vErrors = [err49] : vErrors.push(err49), errors++;
10039
+ }
10040
+ }
10041
+ } else {
10042
+ let err50 = { instancePath: instancePath + "/swing", schemaPath: "#/$defs/swing/oneOf/1/type", keyword: "type", params: { type: "object" }, message: "must be object" };
10043
+ vErrors === null ? vErrors = [err50] : vErrors.push(err50), errors++;
10044
+ }
10045
+ var _valid2 = _errs36 === errors;
10046
+ if (_valid2 && valid8 ? (valid8 = !1, passing1 = [passing1, 1]) : _valid2 && (valid8 = !0, passing1 = 1, props0 !== !0 && (props0 = !0)), valid8)
10047
+ errors = _errs30, vErrors !== null && (_errs30 ? vErrors.length = _errs30 : vErrors = null);
10048
+ else {
10049
+ let err51 = { instancePath: instancePath + "/swing", schemaPath: "#/$defs/swing/oneOf", keyword: "oneOf", params: { passingSchemas: passing1 }, message: "must match exactly one schema in oneOf" };
10050
+ vErrors === null ? vErrors = [err51] : vErrors.push(err51), errors++;
10051
+ }
10052
+ }
10053
+ if (data.text !== void 0 && (validate403(data.text, { instancePath: instancePath + "/text", parentData: data, parentDataProperty: "text", rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate403.errors : vErrors.concat(validate403.errors), errors = vErrors.length)), data.showMetronomeMark !== void 0 && typeof data.showMetronomeMark != "boolean") {
10054
+ let err52 = { instancePath: instancePath + "/showMetronomeMark", schemaPath: "#/properties/showMetronomeMark/type", keyword: "type", params: { type: "boolean" }, message: "must be boolean" };
10055
+ vErrors === null ? vErrors = [err52] : vErrors.push(err52), errors++;
10056
+ }
10057
+ if (data.showText !== void 0 && typeof data.showText != "boolean") {
10058
+ let err53 = { instancePath: instancePath + "/showText", schemaPath: "#/properties/showText/type", keyword: "type", params: { type: "boolean" }, message: "must be boolean" };
10059
+ vErrors === null ? vErrors = [err53] : vErrors.push(err53), errors++;
10060
+ }
10061
+ if (data.manualOffset !== void 0) {
10062
+ let data17 = data.manualOffset;
10063
+ if (Array.isArray(data17)) {
10064
+ if (data17.length > 2) {
10065
+ let err54 = { instancePath: instancePath + "/manualOffset", schemaPath: "#/$defs/sp-delta/maxItems", keyword: "maxItems", params: { limit: 2 }, message: "must NOT have more than 2 items" };
10066
+ vErrors === null ? vErrors = [err54] : vErrors.push(err54), errors++;
10067
+ }
10068
+ if (data17.length < 2) {
10069
+ let err55 = { instancePath: instancePath + "/manualOffset", schemaPath: "#/$defs/sp-delta/minItems", keyword: "minItems", params: { limit: 2 }, message: "must NOT have fewer than 2 items" };
10070
+ vErrors === null ? vErrors = [err55] : vErrors.push(err55), errors++;
10071
+ }
10072
+ let len3 = data17.length;
10073
+ for (let i1 = 0; i1 < len3; i1++)
10074
+ if (typeof data17[i1] != "number") {
10075
+ let err56 = { instancePath: instancePath + "/manualOffset/" + i1, schemaPath: "#/$defs/sp-delta/items/type", keyword: "type", params: { type: "number" }, message: "must be number" };
10076
+ vErrors === null ? vErrors = [err56] : vErrors.push(err56), errors++;
10077
+ }
10078
+ } else {
10079
+ let err57 = { instancePath: instancePath + "/manualOffset", schemaPath: "#/$defs/sp-delta/type", keyword: "type", params: { type: "array" }, message: "must be array" };
10080
+ vErrors === null ? vErrors = [err57] : vErrors.push(err57), errors++;
10081
+ }
10082
+ }
10083
+ if (data.avoidCollisions !== void 0 && typeof data.avoidCollisions != "boolean") {
10084
+ let err58 = { instancePath: instancePath + "/avoidCollisions", schemaPath: "#/properties/avoidCollisions/type", keyword: "type", params: { type: "boolean" }, message: "must be boolean" };
10085
+ vErrors === null ? vErrors = [err58] : vErrors.push(err58), errors++;
10086
+ }
10087
+ } else {
10088
+ let err59 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
10089
+ vErrors === null ? vErrors = [err59] : vErrors.push(err59), errors++;
10090
+ }
10091
+ return validate402.errors = vErrors, errors === 0;
10092
+ }
10093
+ validate402.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
10094
+ var schema387 = { type: "object", description: "A rehearsal mark displayed above the staff (e.g. 'A', 'B', '1'). Typically rendered in a box or circle.", required: ["text"], properties: { text: { $ref: "#/$defs/text-content" }, style: { type: "string", enum: ["boxed", "circled", "plain"], description: "Display style. Default: 'boxed'." }, manualOffset: { $ref: "#/$defs/sp-delta", description: "Manual [dx, dy] offset in spatia (sp); +x right, +y up." }, avoidCollisions: { type: "boolean", description: "Whether automatic collision avoidance may re-flow this mark. Default/unset: true." } }, additionalProperties: !1 };
10095
+ function validate410(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
10096
+ let vErrors = null, errors = 0, evaluated0 = validate410.evaluated;
9731
10097
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
9732
10098
  if (data.text === void 0) {
9733
10099
  let err0 = { instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: "text" }, message: "must have required property 'text'" };
@@ -9745,7 +10111,7 @@ function validate402(data, { instancePath = "", parentData, parentDataProperty,
9745
10111
  vErrors === null ? vErrors = [err2] : vErrors.push(err2), errors++;
9746
10112
  }
9747
10113
  if (!(data1 === "boxed" || data1 === "circled" || data1 === "plain")) {
9748
- let err3 = { instancePath: instancePath + "/style", schemaPath: "#/properties/style/enum", keyword: "enum", params: { allowedValues: schema378.properties.style.enum }, message: "must be equal to one of the allowed values" };
10114
+ let err3 = { instancePath: instancePath + "/style", schemaPath: "#/properties/style/enum", keyword: "enum", params: { allowedValues: schema387.properties.style.enum }, message: "must be equal to one of the allowed values" };
9749
10115
  vErrors === null ? vErrors = [err3] : vErrors.push(err3), errors++;
9750
10116
  }
9751
10117
  }
@@ -9779,12 +10145,12 @@ function validate402(data, { instancePath = "", parentData, parentDataProperty,
9779
10145
  let err9 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
9780
10146
  vErrors === null ? vErrors = [err9] : vErrors.push(err9), errors++;
9781
10147
  }
9782
- return validate402.errors = vErrors, errors === 0;
10148
+ return validate410.errors = vErrors, errors === 0;
9783
10149
  }
9784
- validate402.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
9785
- var schema387 = { type: "object", description: "Authored display text owned by one navigation marker. The owning marker remains authoritative for playback and navigation.", required: ["content", "placement"], properties: { content: { $ref: "#/$defs/text-content", description: "Ordered authored text and SMuFL glyph runs." }, placement: { type: "string", enum: ["before", "after", "replace"], description: "Whether authored content precedes, follows, or replaces the marker's generated glyph or label." } }, additionalProperties: !1 };
9786
- function validate411(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
9787
- let vErrors = null, errors = 0, evaluated0 = validate411.evaluated;
10150
+ validate410.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
10151
+ var schema390 = { type: "object", description: "Authored display text owned by one navigation marker. The owning marker remains authoritative for playback and navigation.", required: ["content", "placement"], properties: { content: { $ref: "#/$defs/text-content", description: "Ordered authored text and SMuFL glyph runs." }, placement: { type: "string", enum: ["before", "after", "replace"], description: "Whether authored content precedes, follows, or replaces the marker's generated glyph or label." } }, additionalProperties: !1 };
10152
+ function validate414(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
10153
+ let vErrors = null, errors = 0, evaluated0 = validate414.evaluated;
9788
10154
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
9789
10155
  if (data.content === void 0) {
9790
10156
  let err0 = { instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: "content" }, message: "must have required property 'content'" };
@@ -9806,7 +10172,7 @@ function validate411(data, { instancePath = "", parentData, parentDataProperty,
9806
10172
  vErrors === null ? vErrors = [err3] : vErrors.push(err3), errors++;
9807
10173
  }
9808
10174
  if (!(data1 === "before" || data1 === "after" || data1 === "replace")) {
9809
- let err4 = { instancePath: instancePath + "/placement", schemaPath: "#/properties/placement/enum", keyword: "enum", params: { allowedValues: schema387.properties.placement.enum }, message: "must be equal to one of the allowed values" };
10175
+ let err4 = { instancePath: instancePath + "/placement", schemaPath: "#/properties/placement/enum", keyword: "enum", params: { allowedValues: schema390.properties.placement.enum }, message: "must be equal to one of the allowed values" };
9810
10176
  vErrors === null ? vErrors = [err4] : vErrors.push(err4), errors++;
9811
10177
  }
9812
10178
  }
@@ -9814,11 +10180,11 @@ function validate411(data, { instancePath = "", parentData, parentDataProperty,
9814
10180
  let err5 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
9815
10181
  vErrors === null ? vErrors = [err5] : vErrors.push(err5), errors++;
9816
10182
  }
9817
- return validate411.errors = vErrors, errors === 0;
10183
+ return validate414.errors = vErrors, errors === 0;
9818
10184
  }
9819
- validate411.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
9820
- function validate410(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
9821
- let vErrors = null, errors = 0, evaluated0 = validate410.evaluated;
10185
+ validate414.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
10186
+ function validate413(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
10187
+ let vErrors = null, errors = 0, evaluated0 = validate413.evaluated;
9822
10188
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
9823
10189
  if (Object.keys(data).length < 1) {
9824
10190
  let err0 = { instancePath, schemaPath: "#/minProperties", keyword: "minProperties", params: { limit: 1 }, message: "must NOT have fewer than 1 properties" };
@@ -9829,18 +10195,18 @@ function validate410(data, { instancePath = "", parentData, parentDataProperty,
9829
10195
  let err1 = { instancePath, schemaPath: "#/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: key0 }, message: "must NOT have additional properties" };
9830
10196
  vErrors === null ? vErrors = [err1] : vErrors.push(err1), errors++;
9831
10197
  }
9832
- data.segno !== void 0 && (validate411(data.segno, { instancePath: instancePath + "/segno", parentData: data, parentDataProperty: "segno", rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate411.errors : vErrors.concat(validate411.errors), errors = vErrors.length)), data.coda !== void 0 && (validate411(data.coda, { instancePath: instancePath + "/coda", parentData: data, parentDataProperty: "coda", rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate411.errors : vErrors.concat(validate411.errors), errors = vErrors.length)), data.fine !== void 0 && (validate411(data.fine, { instancePath: instancePath + "/fine", parentData: data, parentDataProperty: "fine", rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate411.errors : vErrors.concat(validate411.errors), errors = vErrors.length)), data.jump !== void 0 && (validate411(data.jump, { instancePath: instancePath + "/jump", parentData: data, parentDataProperty: "jump", rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate411.errors : vErrors.concat(validate411.errors), errors = vErrors.length));
10198
+ data.segno !== void 0 && (validate414(data.segno, { instancePath: instancePath + "/segno", parentData: data, parentDataProperty: "segno", rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate414.errors : vErrors.concat(validate414.errors), errors = vErrors.length)), data.coda !== void 0 && (validate414(data.coda, { instancePath: instancePath + "/coda", parentData: data, parentDataProperty: "coda", rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate414.errors : vErrors.concat(validate414.errors), errors = vErrors.length)), data.fine !== void 0 && (validate414(data.fine, { instancePath: instancePath + "/fine", parentData: data, parentDataProperty: "fine", rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate414.errors : vErrors.concat(validate414.errors), errors = vErrors.length)), data.jump !== void 0 && (validate414(data.jump, { instancePath: instancePath + "/jump", parentData: data, parentDataProperty: "jump", rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate414.errors : vErrors.concat(validate414.errors), errors = vErrors.length));
9833
10199
  } else {
9834
10200
  let err2 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
9835
10201
  vErrors === null ? vErrors = [err2] : vErrors.push(err2), errors++;
9836
10202
  }
9837
- return validate410.errors = vErrors, errors === 0;
10203
+ return validate413.errors = vErrors, errors === 0;
9838
10204
  }
9839
- validate410.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
9840
- var schema389 = { type: "object", description: "Optional shared frame presentation on staff text. No width means natural width; a staff-space width enables word wrapping. Height is automatic.", properties: { width: { type: "object", required: ["unit", "value"], properties: { unit: { const: "staffSpaces" }, value: { type: "number", exclusiveMinimum: 0 } }, additionalProperties: !1 }, horizontalAlignment: { type: "string", enum: ["left", "center", "right"] }, paragraphJustification: { type: "string", enum: ["left", "center", "right", "justify"] }, padding: { type: "number", minimum: 0 }, border: { type: "string", enum: ["none", "solid"] }, eraseBackground: { type: "boolean", description: "Erase underlying ink within the frame using the surface background. Omitted or false preserves underlying ink; no color is stored." } }, additionalProperties: !1 };
9841
- var schema391 = { type: "string", enum: ["below", "above"], description: "Placement of a text expression relative to the staff. Default: 'below'." };
9842
- function validate418(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
9843
- let vErrors = null, errors = 0, evaluated0 = validate418.evaluated;
10205
+ validate413.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
10206
+ var schema392 = { type: "object", description: "Optional shared frame presentation on staff text. No width means natural width; a staff-space width enables word wrapping. Height is automatic.", properties: { width: { type: "object", required: ["unit", "value"], properties: { unit: { const: "staffSpaces" }, value: { type: "number", exclusiveMinimum: 0 } }, additionalProperties: !1 }, horizontalAlignment: { type: "string", enum: ["left", "center", "right"] }, paragraphJustification: { type: "string", enum: ["left", "center", "right", "justify"] }, padding: { type: "number", minimum: 0 }, border: { type: "string", enum: ["none", "solid"] }, eraseBackground: { type: "boolean", description: "Erase underlying ink within the frame using the surface background. Omitted or false preserves underlying ink; no color is stored." } }, additionalProperties: !1 };
10207
+ var schema394 = { type: "string", enum: ["below", "above"], description: "Placement of a text expression relative to the staff. Default: 'below'." };
10208
+ function validate421(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
10209
+ let vErrors = null, errors = 0, evaluated0 = validate421.evaluated;
9844
10210
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
9845
10211
  if (data.id === void 0) {
9846
10212
  let err0 = { instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: "id" }, message: "must have required property 'id'" };
@@ -9923,7 +10289,7 @@ function validate418(data, { instancePath = "", parentData, parentDataProperty,
9923
10289
  vErrors === null ? vErrors = [err14] : vErrors.push(err14), errors++;
9924
10290
  }
9925
10291
  if (!(data6 === "left" || data6 === "center" || data6 === "right")) {
9926
- let err15 = { instancePath: instancePath + "/frame/horizontalAlignment", schemaPath: "#/$defs/staff-text-frame-presentation/properties/horizontalAlignment/enum", keyword: "enum", params: { allowedValues: schema389.properties.horizontalAlignment.enum }, message: "must be equal to one of the allowed values" };
10292
+ let err15 = { instancePath: instancePath + "/frame/horizontalAlignment", schemaPath: "#/$defs/staff-text-frame-presentation/properties/horizontalAlignment/enum", keyword: "enum", params: { allowedValues: schema392.properties.horizontalAlignment.enum }, message: "must be equal to one of the allowed values" };
9927
10293
  vErrors === null ? vErrors = [err15] : vErrors.push(err15), errors++;
9928
10294
  }
9929
10295
  }
@@ -9934,7 +10300,7 @@ function validate418(data, { instancePath = "", parentData, parentDataProperty,
9934
10300
  vErrors === null ? vErrors = [err16] : vErrors.push(err16), errors++;
9935
10301
  }
9936
10302
  if (!(data7 === "left" || data7 === "center" || data7 === "right" || data7 === "justify")) {
9937
- let err17 = { instancePath: instancePath + "/frame/paragraphJustification", schemaPath: "#/$defs/staff-text-frame-presentation/properties/paragraphJustification/enum", keyword: "enum", params: { allowedValues: schema389.properties.paragraphJustification.enum }, message: "must be equal to one of the allowed values" };
10303
+ let err17 = { instancePath: instancePath + "/frame/paragraphJustification", schemaPath: "#/$defs/staff-text-frame-presentation/properties/paragraphJustification/enum", keyword: "enum", params: { allowedValues: schema392.properties.paragraphJustification.enum }, message: "must be equal to one of the allowed values" };
9938
10304
  vErrors === null ? vErrors = [err17] : vErrors.push(err17), errors++;
9939
10305
  }
9940
10306
  }
@@ -9957,7 +10323,7 @@ function validate418(data, { instancePath = "", parentData, parentDataProperty,
9957
10323
  vErrors === null ? vErrors = [err20] : vErrors.push(err20), errors++;
9958
10324
  }
9959
10325
  if (!(data9 === "none" || data9 === "solid")) {
9960
- let err21 = { instancePath: instancePath + "/frame/border", schemaPath: "#/$defs/staff-text-frame-presentation/properties/border/enum", keyword: "enum", params: { allowedValues: schema389.properties.border.enum }, message: "must be equal to one of the allowed values" };
10326
+ let err21 = { instancePath: instancePath + "/frame/border", schemaPath: "#/$defs/staff-text-frame-presentation/properties/border/enum", keyword: "enum", params: { allowedValues: schema392.properties.border.enum }, message: "must be equal to one of the allowed values" };
9961
10327
  vErrors === null ? vErrors = [err21] : vErrors.push(err21), errors++;
9962
10328
  }
9963
10329
  }
@@ -10046,7 +10412,7 @@ function validate418(data, { instancePath = "", parentData, parentDataProperty,
10046
10412
  vErrors === null ? vErrors = [err35] : vErrors.push(err35), errors++;
10047
10413
  }
10048
10414
  if (!(data17 === "below" || data17 === "above")) {
10049
- let err36 = { instancePath: instancePath + "/placement", schemaPath: "#/$defs/expression-placement/enum", keyword: "enum", params: { allowedValues: schema391.enum }, message: "must be equal to one of the allowed values" };
10415
+ let err36 = { instancePath: instancePath + "/placement", schemaPath: "#/$defs/expression-placement/enum", keyword: "enum", params: { allowedValues: schema394.enum }, message: "must be equal to one of the allowed values" };
10050
10416
  vErrors === null ? vErrors = [err36] : vErrors.push(err36), errors++;
10051
10417
  }
10052
10418
  }
@@ -10080,12 +10446,12 @@ function validate418(data, { instancePath = "", parentData, parentDataProperty,
10080
10446
  let err42 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
10081
10447
  vErrors === null ? vErrors = [err42] : vErrors.push(err42), errors++;
10082
10448
  }
10083
- return validate418.errors = vErrors, errors === 0;
10449
+ return validate421.errors = vErrors, errors === 0;
10084
10450
  }
10085
- validate418.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
10086
- var schema393 = { type: "object", description: "A gradual tempo change (ritardando / accelerando) playback curve. MNX has no gradual-tempo field, so Viritura models the playback ramp as a vendor extension on the global measure where it begins. The tempo ramps linearly in BPM from the tempo active at `position` (or `startBpm` if given) to `endBpm` at `end`. This is playback data only; the printed 'rit.'/'accel.' text is an ordinary text-expression.", required: ["position", "end", "endBpm"], properties: { position: { $ref: "#/$defs/rhythmic-position", description: "Start position within this measure." }, end: { $ref: "#/$defs/measure-rhythmic-position", description: "End position (may reference a later measure)." }, endBpm: { type: "number", exclusiveMinimum: 0, description: "Quarter-note BPM reached at the end of the ramp." }, startBpm: { type: "number", exclusiveMinimum: 0, description: "Optional start BPM (quarter-note). Defaults to the tempo active at `position`." }, kind: { type: "string", enum: ["rit", "accel"], description: "Optional classification. Cosmetic only; the BPM direction determines the audible behavior." } }, additionalProperties: !1 };
10087
- function validate422(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
10088
- let vErrors = null, errors = 0, evaluated0 = validate422.evaluated;
10451
+ validate421.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
10452
+ var schema396 = { type: "object", description: "A gradual tempo change (ritardando / accelerando) playback curve. MNX has no gradual-tempo field, so Viritura models the playback ramp as a vendor extension on the global measure where it begins. The tempo ramps linearly in BPM from the tempo active at `position` (or `startBpm` if given) to `endBpm` at `end`. This is playback data only; the printed 'rit.'/'accel.' text is an ordinary text-expression.", required: ["position", "end", "endBpm"], properties: { position: { $ref: "#/$defs/rhythmic-position", description: "Start position within this measure." }, end: { $ref: "#/$defs/measure-rhythmic-position", description: "End position (may reference a later measure)." }, endBpm: { type: "number", exclusiveMinimum: 0, description: "Quarter-note BPM reached at the end of the ramp." }, startBpm: { type: "number", exclusiveMinimum: 0, description: "Optional start BPM (quarter-note). Defaults to the tempo active at `position`." }, kind: { type: "string", enum: ["rit", "accel"], description: "Optional classification. Cosmetic only; the BPM direction determines the audible behavior." } }, additionalProperties: !1 };
10453
+ function validate425(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
10454
+ let vErrors = null, errors = 0, evaluated0 = validate425.evaluated;
10089
10455
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
10090
10456
  if (data.measure === void 0) {
10091
10457
  let err0 = { instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: "measure" }, message: "must have required property 'measure'" };
@@ -10149,11 +10515,11 @@ function validate422(data, { instancePath = "", parentData, parentDataProperty,
10149
10515
  let err11 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
10150
10516
  vErrors === null ? vErrors = [err11] : vErrors.push(err11), errors++;
10151
10517
  }
10152
- return validate422.errors = vErrors, errors === 0;
10518
+ return validate425.errors = vErrors, errors === 0;
10153
10519
  }
10154
- validate422.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
10155
- function validate421(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
10156
- let vErrors = null, errors = 0, evaluated0 = validate421.evaluated;
10520
+ validate425.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
10521
+ function validate424(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
10522
+ let vErrors = null, errors = 0, evaluated0 = validate424.evaluated;
10157
10523
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
10158
10524
  if (data.position === void 0) {
10159
10525
  let err0 = { instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: "position" }, message: "must have required property 'position'" };
@@ -10213,7 +10579,7 @@ function validate421(data, { instancePath = "", parentData, parentDataProperty,
10213
10579
  vErrors === null ? vErrors = [err10] : vErrors.push(err10), errors++;
10214
10580
  }
10215
10581
  }
10216
- if (data.end !== void 0 && (validate422(data.end, { instancePath: instancePath + "/end", parentData: data, parentDataProperty: "end", rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate422.errors : vErrors.concat(validate422.errors), errors = vErrors.length)), data.endBpm !== void 0) {
10582
+ if (data.end !== void 0 && (validate425(data.end, { instancePath: instancePath + "/end", parentData: data, parentDataProperty: "end", rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate425.errors : vErrors.concat(validate425.errors), errors = vErrors.length)), data.endBpm !== void 0) {
10217
10583
  let data4 = data.endBpm;
10218
10584
  if (typeof data4 == "number") {
10219
10585
  if (data4 <= 0 || isNaN(data4)) {
@@ -10244,7 +10610,7 @@ function validate421(data, { instancePath = "", parentData, parentDataProperty,
10244
10610
  vErrors === null ? vErrors = [err15] : vErrors.push(err15), errors++;
10245
10611
  }
10246
10612
  if (!(data6 === "rit" || data6 === "accel")) {
10247
- let err16 = { instancePath: instancePath + "/kind", schemaPath: "#/properties/kind/enum", keyword: "enum", params: { allowedValues: schema393.properties.kind.enum }, message: "must be equal to one of the allowed values" };
10613
+ let err16 = { instancePath: instancePath + "/kind", schemaPath: "#/properties/kind/enum", keyword: "enum", params: { allowedValues: schema396.properties.kind.enum }, message: "must be equal to one of the allowed values" };
10248
10614
  vErrors === null ? vErrors = [err16] : vErrors.push(err16), errors++;
10249
10615
  }
10250
10616
  }
@@ -10252,12 +10618,12 @@ function validate421(data, { instancePath = "", parentData, parentDataProperty,
10252
10618
  let err17 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
10253
10619
  vErrors === null ? vErrors = [err17] : vErrors.push(err17), errors++;
10254
10620
  }
10255
- return validate421.errors = vErrors, errors === 0;
10621
+ return validate424.errors = vErrors, errors === 0;
10256
10622
  }
10257
- validate421.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
10258
- var schema397 = { type: "object", description: "A score-wide harmony event on a global measure. Either a structured root or authored rawText is required; rawText may preserve malformed or unrecognized symbols and no-chord (NC) declarations without inventing a root.", $comment: "The parser enforces root or rawText. The code generators cannot represent the anyOf required-property constraint while preserving both fields.", required: ["position"], properties: { position: { $ref: "#/$defs/rhythmic-position", description: "Rhythmic position within the measure." }, root: { $ref: "#/$defs/chord-root", description: "Structured root note, optional for raw authored symbols and no-chord declarations. When present, it must agree semantically with rawText." }, rawText: { type: "string", description: "Original authored chord text, preserved verbatim even when structured fields are available. Rootless text preserves malformed or unrecognized symbols and NC. The semantic resolver checks agreement with any structured fields." }, quality: { $ref: "#/$defs/chord-quality" }, kindText: { type: "string", description: "Authored quality spelling retained alongside the normalized quality." }, bass: { $ref: "#/$defs/chord-root", description: "Bass note for slash chords (e.g. the 'E' in 'C/E')." }, extension: { type: "integer", enum: [6, 7, 9, 11, 13], description: "Chord extension (6th, 7th, 9th, 11th, 13th)." }, textOverride: { type: "string", description: "Visual override of the computed display text, not a semantic replacement. The semantic resolver rejects parseable contradictions or unsupported non-equivalent overrides." } }, additionalProperties: !1 }, schema399 = { type: "object", description: "Root or bass note of a chord symbol.", required: ["step"], properties: { step: { type: "string", enum: ["A", "B", "C", "D", "E", "F", "G"], description: "Note letter name." }, alter: { type: "integer", description: "Chromatic alteration in semitones (-1 = flat, 1 = sharp)." } }, additionalProperties: !1 }, schema400 = { type: "string", enum: ["major", "minor", "dominant", "diminished", "augmented", "half-diminished", "minor-major", "power", "suspended2", "suspended4", "other"], description: "Harmonic quality of a chord symbol." };
10259
- function validate425(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
10260
- let vErrors = null, errors = 0, evaluated0 = validate425.evaluated;
10623
+ validate424.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
10624
+ var schema400 = { type: "object", description: "A score-wide harmony event on a global measure. Either a structured root or authored rawText is required; rawText may preserve malformed or unrecognized symbols and no-chord (NC) declarations without inventing a root.", $comment: "The parser enforces root or rawText. The code generators cannot represent the anyOf required-property constraint while preserving both fields.", required: ["position"], properties: { position: { $ref: "#/$defs/rhythmic-position", description: "Rhythmic position within the measure." }, root: { $ref: "#/$defs/chord-root", description: "Structured root note, optional for raw authored symbols and no-chord declarations. When present, it must agree semantically with rawText." }, rawText: { type: "string", description: "Original authored chord text, preserved verbatim even when structured fields are available. Rootless text preserves malformed or unrecognized symbols and NC. The semantic resolver checks agreement with any structured fields." }, quality: { $ref: "#/$defs/chord-quality" }, kindText: { type: "string", description: "Authored quality spelling retained alongside the normalized quality." }, bass: { $ref: "#/$defs/chord-root", description: "Bass note for slash chords (e.g. the 'E' in 'C/E')." }, extension: { type: "integer", enum: [6, 7, 9, 11, 13], description: "Chord extension (6th, 7th, 9th, 11th, 13th)." }, textOverride: { type: "string", description: "Visual override of the computed display text, not a semantic replacement. The semantic resolver rejects parseable contradictions or unsupported non-equivalent overrides." } }, additionalProperties: !1 }, schema402 = { type: "object", description: "Root or bass note of a chord symbol.", required: ["step"], properties: { step: { type: "string", enum: ["A", "B", "C", "D", "E", "F", "G"], description: "Note letter name." }, alter: { type: "integer", description: "Chromatic alteration in semitones (-1 = flat, 1 = sharp)." } }, additionalProperties: !1 }, schema403 = { type: "string", enum: ["major", "minor", "dominant", "diminished", "augmented", "half-diminished", "minor-major", "power", "suspended2", "suspended4", "other"], description: "Harmonic quality of a chord symbol." };
10625
+ function validate428(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
10626
+ let vErrors = null, errors = 0, evaluated0 = validate428.evaluated;
10261
10627
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
10262
10628
  if (data.position === void 0) {
10263
10629
  let err0 = { instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: "position" }, message: "must have required property 'position'" };
@@ -10328,7 +10694,7 @@ function validate425(data, { instancePath = "", parentData, parentDataProperty,
10328
10694
  vErrors === null ? vErrors = [err11] : vErrors.push(err11), errors++;
10329
10695
  }
10330
10696
  if (!(data4 === "A" || data4 === "B" || data4 === "C" || data4 === "D" || data4 === "E" || data4 === "F" || data4 === "G")) {
10331
- let err12 = { instancePath: instancePath + "/root/step", schemaPath: "#/$defs/chord-root/properties/step/enum", keyword: "enum", params: { allowedValues: schema399.properties.step.enum }, message: "must be equal to one of the allowed values" };
10697
+ let err12 = { instancePath: instancePath + "/root/step", schemaPath: "#/$defs/chord-root/properties/step/enum", keyword: "enum", params: { allowedValues: schema402.properties.step.enum }, message: "must be equal to one of the allowed values" };
10332
10698
  vErrors === null ? vErrors = [err12] : vErrors.push(err12), errors++;
10333
10699
  }
10334
10700
  }
@@ -10355,7 +10721,7 @@ function validate425(data, { instancePath = "", parentData, parentDataProperty,
10355
10721
  vErrors === null ? vErrors = [err16] : vErrors.push(err16), errors++;
10356
10722
  }
10357
10723
  if (!(data7 === "major" || data7 === "minor" || data7 === "dominant" || data7 === "diminished" || data7 === "augmented" || data7 === "half-diminished" || data7 === "minor-major" || data7 === "power" || data7 === "suspended2" || data7 === "suspended4" || data7 === "other")) {
10358
- let err17 = { instancePath: instancePath + "/quality", schemaPath: "#/$defs/chord-quality/enum", keyword: "enum", params: { allowedValues: schema400.enum }, message: "must be equal to one of the allowed values" };
10724
+ let err17 = { instancePath: instancePath + "/quality", schemaPath: "#/$defs/chord-quality/enum", keyword: "enum", params: { allowedValues: schema403.enum }, message: "must be equal to one of the allowed values" };
10359
10725
  vErrors === null ? vErrors = [err17] : vErrors.push(err17), errors++;
10360
10726
  }
10361
10727
  }
@@ -10382,7 +10748,7 @@ function validate425(data, { instancePath = "", parentData, parentDataProperty,
10382
10748
  vErrors === null ? vErrors = [err21] : vErrors.push(err21), errors++;
10383
10749
  }
10384
10750
  if (!(data10 === "A" || data10 === "B" || data10 === "C" || data10 === "D" || data10 === "E" || data10 === "F" || data10 === "G")) {
10385
- let err22 = { instancePath: instancePath + "/bass/step", schemaPath: "#/$defs/chord-root/properties/step/enum", keyword: "enum", params: { allowedValues: schema399.properties.step.enum }, message: "must be equal to one of the allowed values" };
10751
+ let err22 = { instancePath: instancePath + "/bass/step", schemaPath: "#/$defs/chord-root/properties/step/enum", keyword: "enum", params: { allowedValues: schema402.properties.step.enum }, message: "must be equal to one of the allowed values" };
10386
10752
  vErrors === null ? vErrors = [err22] : vErrors.push(err22), errors++;
10387
10753
  }
10388
10754
  }
@@ -10405,7 +10771,7 @@ function validate425(data, { instancePath = "", parentData, parentDataProperty,
10405
10771
  vErrors === null ? vErrors = [err25] : vErrors.push(err25), errors++;
10406
10772
  }
10407
10773
  if (!(data12 === 6 || data12 === 7 || data12 === 9 || data12 === 11 || data12 === 13)) {
10408
- let err26 = { instancePath: instancePath + "/extension", schemaPath: "#/properties/extension/enum", keyword: "enum", params: { allowedValues: schema397.properties.extension.enum }, message: "must be equal to one of the allowed values" };
10774
+ let err26 = { instancePath: instancePath + "/extension", schemaPath: "#/properties/extension/enum", keyword: "enum", params: { allowedValues: schema400.properties.extension.enum }, message: "must be equal to one of the allowed values" };
10409
10775
  vErrors === null ? vErrors = [err26] : vErrors.push(err26), errors++;
10410
10776
  }
10411
10777
  }
@@ -10417,59 +10783,74 @@ function validate425(data, { instancePath = "", parentData, parentDataProperty,
10417
10783
  let err28 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
10418
10784
  vErrors === null ? vErrors = [err28] : vErrors.push(err28), errors++;
10419
10785
  }
10420
- return validate425.errors = vErrors, errors === 0;
10786
+ return validate428.errors = vErrors, errors === 0;
10421
10787
  }
10422
- validate425.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
10788
+ validate428.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
10423
10789
  function validate401(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
10424
10790
  let vErrors = null, errors = 0, evaluated0 = validate401.evaluated;
10425
10791
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
10426
10792
  for (let key0 in data)
10427
- if (!(key0 === "rehearsalMark" || key0 === "markerText" || key0 === "systemText" || key0 === "gradualTempo" || key0 === "chordSymbols" || key0 === "senzaMisura")) {
10793
+ if (!(key0 === "tempos" || key0 === "rehearsalMark" || key0 === "markerText" || key0 === "systemText" || key0 === "gradualTempo" || key0 === "chordSymbols" || key0 === "senzaMisura")) {
10428
10794
  let err0 = { instancePath, schemaPath: "#/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: key0 }, message: "must NOT have additional properties" };
10429
10795
  vErrors === null ? vErrors = [err0] : vErrors.push(err0), errors++;
10430
10796
  }
10431
- if (data.rehearsalMark !== void 0 && (validate402(data.rehearsalMark, { instancePath: instancePath + "/rehearsalMark", parentData: data, parentDataProperty: "rehearsalMark", rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate402.errors : vErrors.concat(validate402.errors), errors = vErrors.length)), data.markerText !== void 0 && (validate410(data.markerText, { instancePath: instancePath + "/markerText", parentData: data, parentDataProperty: "markerText", rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate410.errors : vErrors.concat(validate410.errors), errors = vErrors.length)), data.systemText !== void 0) {
10432
- let data2 = data.systemText;
10433
- if (Array.isArray(data2)) {
10434
- let len0 = data2.length;
10797
+ if (data.tempos !== void 0) {
10798
+ let data0 = data.tempos;
10799
+ if (Array.isArray(data0)) {
10800
+ if (data0.length < 1) {
10801
+ let err1 = { instancePath: instancePath + "/tempos", schemaPath: "#/properties/tempos/minItems", keyword: "minItems", params: { limit: 1 }, message: "must NOT have fewer than 1 items" };
10802
+ vErrors === null ? vErrors = [err1] : vErrors.push(err1), errors++;
10803
+ }
10804
+ let len0 = data0.length;
10435
10805
  for (let i0 = 0; i0 < len0; i0++)
10436
- validate418(data2[i0], { instancePath: instancePath + "/systemText/" + i0, parentData: data2, parentDataProperty: i0, rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate418.errors : vErrors.concat(validate418.errors), errors = vErrors.length);
10806
+ validate402(data0[i0], { instancePath: instancePath + "/tempos/" + i0, parentData: data0, parentDataProperty: i0, rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate402.errors : vErrors.concat(validate402.errors), errors = vErrors.length);
10437
10807
  } else {
10438
- let err1 = { instancePath: instancePath + "/systemText", schemaPath: "#/properties/systemText/type", keyword: "type", params: { type: "array" }, message: "must be array" };
10439
- vErrors === null ? vErrors = [err1] : vErrors.push(err1), errors++;
10808
+ let err2 = { instancePath: instancePath + "/tempos", schemaPath: "#/properties/tempos/type", keyword: "type", params: { type: "array" }, message: "must be array" };
10809
+ vErrors === null ? vErrors = [err2] : vErrors.push(err2), errors++;
10440
10810
  }
10441
10811
  }
10442
- if (data.gradualTempo !== void 0 && (validate421(data.gradualTempo, { instancePath: instancePath + "/gradualTempo", parentData: data, parentDataProperty: "gradualTempo", rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate421.errors : vErrors.concat(validate421.errors), errors = vErrors.length)), data.chordSymbols !== void 0) {
10443
- let data5 = data.chordSymbols;
10444
- if (Array.isArray(data5)) {
10445
- let len1 = data5.length;
10812
+ if (data.rehearsalMark !== void 0 && (validate410(data.rehearsalMark, { instancePath: instancePath + "/rehearsalMark", parentData: data, parentDataProperty: "rehearsalMark", rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate410.errors : vErrors.concat(validate410.errors), errors = vErrors.length)), data.markerText !== void 0 && (validate413(data.markerText, { instancePath: instancePath + "/markerText", parentData: data, parentDataProperty: "markerText", rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate413.errors : vErrors.concat(validate413.errors), errors = vErrors.length)), data.systemText !== void 0) {
10813
+ let data4 = data.systemText;
10814
+ if (Array.isArray(data4)) {
10815
+ let len1 = data4.length;
10446
10816
  for (let i1 = 0; i1 < len1; i1++)
10447
- validate425(data5[i1], { instancePath: instancePath + "/chordSymbols/" + i1, parentData: data5, parentDataProperty: i1, rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate425.errors : vErrors.concat(validate425.errors), errors = vErrors.length);
10817
+ validate421(data4[i1], { instancePath: instancePath + "/systemText/" + i1, parentData: data4, parentDataProperty: i1, rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate421.errors : vErrors.concat(validate421.errors), errors = vErrors.length);
10448
10818
  } else {
10449
- let err2 = { instancePath: instancePath + "/chordSymbols", schemaPath: "#/properties/chordSymbols/type", keyword: "type", params: { type: "array" }, message: "must be array" };
10450
- vErrors === null ? vErrors = [err2] : vErrors.push(err2), errors++;
10819
+ let err3 = { instancePath: instancePath + "/systemText", schemaPath: "#/properties/systemText/type", keyword: "type", params: { type: "array" }, message: "must be array" };
10820
+ vErrors === null ? vErrors = [err3] : vErrors.push(err3), errors++;
10821
+ }
10822
+ }
10823
+ if (data.gradualTempo !== void 0 && (validate424(data.gradualTempo, { instancePath: instancePath + "/gradualTempo", parentData: data, parentDataProperty: "gradualTempo", rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate424.errors : vErrors.concat(validate424.errors), errors = vErrors.length)), data.chordSymbols !== void 0) {
10824
+ let data7 = data.chordSymbols;
10825
+ if (Array.isArray(data7)) {
10826
+ let len2 = data7.length;
10827
+ for (let i2 = 0; i2 < len2; i2++)
10828
+ validate428(data7[i2], { instancePath: instancePath + "/chordSymbols/" + i2, parentData: data7, parentDataProperty: i2, rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate428.errors : vErrors.concat(validate428.errors), errors = vErrors.length);
10829
+ } else {
10830
+ let err4 = { instancePath: instancePath + "/chordSymbols", schemaPath: "#/properties/chordSymbols/type", keyword: "type", params: { type: "array" }, message: "must be array" };
10831
+ vErrors === null ? vErrors = [err4] : vErrors.push(err4), errors++;
10451
10832
  }
10452
10833
  }
10453
10834
  if (data.senzaMisura !== void 0) {
10454
- let data7 = data.senzaMisura;
10455
- if (typeof data7 != "boolean") {
10456
- let err3 = { instancePath: instancePath + "/senzaMisura", schemaPath: "#/properties/senzaMisura/type", keyword: "type", params: { type: "boolean" }, message: "must be boolean" };
10457
- vErrors === null ? vErrors = [err3] : vErrors.push(err3), errors++;
10835
+ let data9 = data.senzaMisura;
10836
+ if (typeof data9 != "boolean") {
10837
+ let err5 = { instancePath: instancePath + "/senzaMisura", schemaPath: "#/properties/senzaMisura/type", keyword: "type", params: { type: "boolean" }, message: "must be boolean" };
10838
+ vErrors === null ? vErrors = [err5] : vErrors.push(err5), errors++;
10458
10839
  }
10459
- if (data7 !== !0) {
10460
- let err4 = { instancePath: instancePath + "/senzaMisura", schemaPath: "#/properties/senzaMisura/const", keyword: "const", params: { allowedValue: !0 }, message: "must be equal to constant" };
10461
- vErrors === null ? vErrors = [err4] : vErrors.push(err4), errors++;
10840
+ if (data9 !== !0) {
10841
+ let err6 = { instancePath: instancePath + "/senzaMisura", schemaPath: "#/properties/senzaMisura/const", keyword: "const", params: { allowedValue: !0 }, message: "must be equal to constant" };
10842
+ vErrors === null ? vErrors = [err6] : vErrors.push(err6), errors++;
10462
10843
  }
10463
10844
  }
10464
10845
  } else {
10465
- let err5 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
10466
- vErrors === null ? vErrors = [err5] : vErrors.push(err5), errors++;
10846
+ let err7 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
10847
+ vErrors === null ? vErrors = [err7] : vErrors.push(err7), errors++;
10467
10848
  }
10468
10849
  return validate401.errors = vErrors, errors === 0;
10469
10850
  }
10470
10851
  validate401.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
10471
- function validate427(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
10472
- let vErrors = null, errors = 0, evaluated0 = validate427.evaluated;
10852
+ function validate430(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
10853
+ let vErrors = null, errors = 0, evaluated0 = validate430.evaluated;
10473
10854
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
10474
10855
  for (let key0 in data)
10475
10856
  if (!(key0 === "beatStructure" || key0 === "groupingDisplay" || key0 === "display")) {
@@ -10526,11 +10907,11 @@ function validate427(data, { instancePath = "", parentData, parentDataProperty,
10526
10907
  let err9 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
10527
10908
  vErrors === null ? vErrors = [err9] : vErrors.push(err9), errors++;
10528
10909
  }
10529
- return validate427.errors = vErrors, errors === 0;
10910
+ return validate430.errors = vErrors, errors === 0;
10530
10911
  }
10531
- validate427.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
10532
- function validate428(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
10533
- let vErrors = null, errors = 0, evaluated0 = validate428.evaluated;
10912
+ validate430.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
10913
+ function validate431(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
10914
+ let vErrors = null, errors = 0, evaluated0 = validate431.evaluated;
10534
10915
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
10535
10916
  for (let key0 in data)
10536
10917
  if (key0 !== "atonal") {
@@ -10552,61 +10933,304 @@ function validate428(data, { instancePath = "", parentData, parentDataProperty,
10552
10933
  let err3 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
10553
10934
  vErrors === null ? vErrors = [err3] : vErrors.push(err3), errors++;
10554
10935
  }
10555
- return validate428.errors = vErrors, errors === 0;
10936
+ return validate431.errors = vErrors, errors === 0;
10556
10937
  }
10557
- validate428.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
10558
- function validate429(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
10559
- let vErrors = null, errors = 0, evaluated0 = validate429.evaluated;
10938
+ validate431.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
10939
+ function validate432(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
10940
+ let vErrors = null, errors = 0, evaluated0 = validate432.evaluated;
10560
10941
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
10561
10942
  for (let key0 in data)
10562
- if (!(key0 === "text" || key0 === "showMetronomeMark" || key0 === "showText" || key0 === "manualOffset" || key0 === "avoidCollisions")) {
10943
+ if (!(key0 === "swing" || key0 === "text" || key0 === "showMetronomeMark" || key0 === "showText" || key0 === "manualOffset" || key0 === "avoidCollisions")) {
10563
10944
  let err0 = { instancePath, schemaPath: "#/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: key0 }, message: "must NOT have additional properties" };
10564
10945
  vErrors === null ? vErrors = [err0] : vErrors.push(err0), errors++;
10565
10946
  }
10947
+ if (data.swing !== void 0) {
10948
+ let data0 = data.swing, _errs4 = errors, valid2 = !1, passing0 = null, _errs5 = errors;
10949
+ if (data0 && typeof data0 == "object" && !Array.isArray(data0)) {
10950
+ if (data0.mode === void 0) {
10951
+ let err1 = { instancePath: instancePath + "/swing", schemaPath: "#/$defs/swing/oneOf/0/required", keyword: "required", params: { missingProperty: "mode" }, message: "must have required property 'mode'" };
10952
+ vErrors === null ? vErrors = [err1] : vErrors.push(err1), errors++;
10953
+ }
10954
+ for (let key1 in data0)
10955
+ if (key1 !== "mode") {
10956
+ let err2 = { instancePath: instancePath + "/swing", schemaPath: "#/$defs/swing/oneOf/0/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: key1 }, message: "must NOT have additional properties" };
10957
+ vErrors === null ? vErrors = [err2] : vErrors.push(err2), errors++;
10958
+ }
10959
+ if (data0.mode !== void 0) {
10960
+ let data1 = data0.mode;
10961
+ if (typeof data1 != "string") {
10962
+ let err3 = { instancePath: instancePath + "/swing/mode", schemaPath: "#/$defs/swing/oneOf/0/properties/mode/type", keyword: "type", params: { type: "string" }, message: "must be string" };
10963
+ vErrors === null ? vErrors = [err3] : vErrors.push(err3), errors++;
10964
+ }
10965
+ if (data1 !== "straight") {
10966
+ let err4 = { instancePath: instancePath + "/swing/mode", schemaPath: "#/$defs/swing/oneOf/0/properties/mode/const", keyword: "const", params: { allowedValue: "straight" }, message: "must be equal to constant" };
10967
+ vErrors === null ? vErrors = [err4] : vErrors.push(err4), errors++;
10968
+ }
10969
+ }
10970
+ } else {
10971
+ let err5 = { instancePath: instancePath + "/swing", schemaPath: "#/$defs/swing/oneOf/0/type", keyword: "type", params: { type: "object" }, message: "must be object" };
10972
+ vErrors === null ? vErrors = [err5] : vErrors.push(err5), errors++;
10973
+ }
10974
+ var _valid0 = _errs5 === errors;
10975
+ if (_valid0) {
10976
+ valid2 = !0, passing0 = 0;
10977
+ var props0 = !0;
10978
+ }
10979
+ let _errs10 = errors;
10980
+ if (data0 && typeof data0 == "object" && !Array.isArray(data0)) {
10981
+ if (data0.mode === void 0) {
10982
+ let err6 = { instancePath: instancePath + "/swing", schemaPath: "#/$defs/swing/oneOf/1/required", keyword: "required", params: { missingProperty: "mode" }, message: "must have required property 'mode'" };
10983
+ vErrors === null ? vErrors = [err6] : vErrors.push(err6), errors++;
10984
+ }
10985
+ if (data0.subdivision === void 0) {
10986
+ let err7 = { instancePath: instancePath + "/swing", schemaPath: "#/$defs/swing/oneOf/1/required", keyword: "required", params: { missingProperty: "subdivision" }, message: "must have required property 'subdivision'" };
10987
+ vErrors === null ? vErrors = [err7] : vErrors.push(err7), errors++;
10988
+ }
10989
+ if (data0.ratio === void 0) {
10990
+ let err8 = { instancePath: instancePath + "/swing", schemaPath: "#/$defs/swing/oneOf/1/required", keyword: "required", params: { missingProperty: "ratio" }, message: "must have required property 'ratio'" };
10991
+ vErrors === null ? vErrors = [err8] : vErrors.push(err8), errors++;
10992
+ }
10993
+ for (let key2 in data0)
10994
+ if (!(key2 === "mode" || key2 === "subdivision" || key2 === "ratio")) {
10995
+ let err9 = { instancePath: instancePath + "/swing", schemaPath: "#/$defs/swing/oneOf/1/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: key2 }, message: "must NOT have additional properties" };
10996
+ vErrors === null ? vErrors = [err9] : vErrors.push(err9), errors++;
10997
+ }
10998
+ if (data0.mode !== void 0) {
10999
+ let data2 = data0.mode;
11000
+ if (typeof data2 != "string") {
11001
+ let err10 = { instancePath: instancePath + "/swing/mode", schemaPath: "#/$defs/swing/oneOf/1/properties/mode/type", keyword: "type", params: { type: "string" }, message: "must be string" };
11002
+ vErrors === null ? vErrors = [err10] : vErrors.push(err10), errors++;
11003
+ }
11004
+ if (data2 !== "swing") {
11005
+ let err11 = { instancePath: instancePath + "/swing/mode", schemaPath: "#/$defs/swing/oneOf/1/properties/mode/const", keyword: "const", params: { allowedValue: "swing" }, message: "must be equal to constant" };
11006
+ vErrors === null ? vErrors = [err11] : vErrors.push(err11), errors++;
11007
+ }
11008
+ }
11009
+ if (data0.subdivision !== void 0) {
11010
+ let data3 = data0.subdivision;
11011
+ if (typeof data3 != "string") {
11012
+ let err12 = { instancePath: instancePath + "/swing/subdivision", schemaPath: "#/$defs/swing/oneOf/1/properties/subdivision/type", keyword: "type", params: { type: "string" }, message: "must be string" };
11013
+ vErrors === null ? vErrors = [err12] : vErrors.push(err12), errors++;
11014
+ }
11015
+ if (!(data3 === "eighth" || data3 === "16th")) {
11016
+ let err13 = { instancePath: instancePath + "/swing/subdivision", schemaPath: "#/$defs/swing/oneOf/1/properties/subdivision/enum", keyword: "enum", params: { allowedValues: schema379.oneOf[1].properties.subdivision.enum }, message: "must be equal to one of the allowed values" };
11017
+ vErrors === null ? vErrors = [err13] : vErrors.push(err13), errors++;
11018
+ }
11019
+ }
11020
+ if (data0.ratio !== void 0) {
11021
+ let data4 = data0.ratio;
11022
+ if (Array.isArray(data4)) {
11023
+ if (data4.length > 2) {
11024
+ let err14 = { instancePath: instancePath + "/swing/ratio", schemaPath: "#/$defs/swing/oneOf/1/properties/ratio/maxItems", keyword: "maxItems", params: { limit: 2 }, message: "must NOT have more than 2 items" };
11025
+ vErrors === null ? vErrors = [err14] : vErrors.push(err14), errors++;
11026
+ }
11027
+ if (data4.length < 2) {
11028
+ let err15 = { instancePath: instancePath + "/swing/ratio", schemaPath: "#/$defs/swing/oneOf/1/properties/ratio/minItems", keyword: "minItems", params: { limit: 2 }, message: "must NOT have fewer than 2 items" };
11029
+ vErrors === null ? vErrors = [err15] : vErrors.push(err15), errors++;
11030
+ }
11031
+ let len0 = data4.length;
11032
+ for (let i0 = 0; i0 < len0; i0++) {
11033
+ let data5 = data4[i0];
11034
+ if (!(typeof data5 == "number" && !(data5 % 1) && !isNaN(data5))) {
11035
+ let err16 = { instancePath: instancePath + "/swing/ratio/" + i0, schemaPath: "#/$defs/swing/oneOf/1/properties/ratio/items/type", keyword: "type", params: { type: "integer" }, message: "must be integer" };
11036
+ vErrors === null ? vErrors = [err16] : vErrors.push(err16), errors++;
11037
+ }
11038
+ if (typeof data5 == "number") {
11039
+ if (data5 > 9007199254740991 || isNaN(data5)) {
11040
+ let err17 = { instancePath: instancePath + "/swing/ratio/" + i0, schemaPath: "#/$defs/swing/oneOf/1/properties/ratio/items/maximum", keyword: "maximum", params: { comparison: "<=", limit: 9007199254740991 }, message: "must be <= 9007199254740991" };
11041
+ vErrors === null ? vErrors = [err17] : vErrors.push(err17), errors++;
11042
+ }
11043
+ if (data5 < 1 || isNaN(data5)) {
11044
+ let err18 = { instancePath: instancePath + "/swing/ratio/" + i0, schemaPath: "#/$defs/swing/oneOf/1/properties/ratio/items/minimum", keyword: "minimum", params: { comparison: ">=", limit: 1 }, message: "must be >= 1" };
11045
+ vErrors === null ? vErrors = [err18] : vErrors.push(err18), errors++;
11046
+ }
11047
+ }
11048
+ }
11049
+ } else {
11050
+ let err19 = { instancePath: instancePath + "/swing/ratio", schemaPath: "#/$defs/swing/oneOf/1/properties/ratio/type", keyword: "type", params: { type: "array" }, message: "must be array" };
11051
+ vErrors === null ? vErrors = [err19] : vErrors.push(err19), errors++;
11052
+ }
11053
+ }
11054
+ } else {
11055
+ let err20 = { instancePath: instancePath + "/swing", schemaPath: "#/$defs/swing/oneOf/1/type", keyword: "type", params: { type: "object" }, message: "must be object" };
11056
+ vErrors === null ? vErrors = [err20] : vErrors.push(err20), errors++;
11057
+ }
11058
+ var _valid0 = _errs10 === errors;
11059
+ if (_valid0 && valid2 ? (valid2 = !1, passing0 = [passing0, 1]) : _valid0 && (valid2 = !0, passing0 = 1, props0 !== !0 && (props0 = !0)), valid2)
11060
+ errors = _errs4, vErrors !== null && (_errs4 ? vErrors.length = _errs4 : vErrors = null);
11061
+ else {
11062
+ let err21 = { instancePath: instancePath + "/swing", schemaPath: "#/$defs/swing/oneOf", keyword: "oneOf", params: { passingSchemas: passing0 }, message: "must match exactly one schema in oneOf" };
11063
+ vErrors === null ? vErrors = [err21] : vErrors.push(err21), errors++;
11064
+ }
11065
+ }
10566
11066
  if (data.text !== void 0 && (validate403(data.text, { instancePath: instancePath + "/text", parentData: data, parentDataProperty: "text", rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate403.errors : vErrors.concat(validate403.errors), errors = vErrors.length)), data.showMetronomeMark !== void 0 && typeof data.showMetronomeMark != "boolean") {
10567
- let err1 = { instancePath: instancePath + "/showMetronomeMark", schemaPath: "#/properties/showMetronomeMark/type", keyword: "type", params: { type: "boolean" }, message: "must be boolean" };
10568
- vErrors === null ? vErrors = [err1] : vErrors.push(err1), errors++;
11067
+ let err22 = { instancePath: instancePath + "/showMetronomeMark", schemaPath: "#/properties/showMetronomeMark/type", keyword: "type", params: { type: "boolean" }, message: "must be boolean" };
11068
+ vErrors === null ? vErrors = [err22] : vErrors.push(err22), errors++;
10569
11069
  }
10570
11070
  if (data.showText !== void 0 && typeof data.showText != "boolean") {
10571
- let err2 = { instancePath: instancePath + "/showText", schemaPath: "#/properties/showText/type", keyword: "type", params: { type: "boolean" }, message: "must be boolean" };
10572
- vErrors === null ? vErrors = [err2] : vErrors.push(err2), errors++;
11071
+ let err23 = { instancePath: instancePath + "/showText", schemaPath: "#/properties/showText/type", keyword: "type", params: { type: "boolean" }, message: "must be boolean" };
11072
+ vErrors === null ? vErrors = [err23] : vErrors.push(err23), errors++;
10573
11073
  }
10574
11074
  if (data.manualOffset !== void 0) {
10575
- let data3 = data.manualOffset;
11075
+ let data9 = data.manualOffset;
11076
+ if (Array.isArray(data9)) {
11077
+ if (data9.length > 2) {
11078
+ let err24 = { instancePath: instancePath + "/manualOffset", schemaPath: "#/$defs/sp-delta/maxItems", keyword: "maxItems", params: { limit: 2 }, message: "must NOT have more than 2 items" };
11079
+ vErrors === null ? vErrors = [err24] : vErrors.push(err24), errors++;
11080
+ }
11081
+ if (data9.length < 2) {
11082
+ let err25 = { instancePath: instancePath + "/manualOffset", schemaPath: "#/$defs/sp-delta/minItems", keyword: "minItems", params: { limit: 2 }, message: "must NOT have fewer than 2 items" };
11083
+ vErrors === null ? vErrors = [err25] : vErrors.push(err25), errors++;
11084
+ }
11085
+ let len1 = data9.length;
11086
+ for (let i1 = 0; i1 < len1; i1++)
11087
+ if (typeof data9[i1] != "number") {
11088
+ let err26 = { instancePath: instancePath + "/manualOffset/" + i1, schemaPath: "#/$defs/sp-delta/items/type", keyword: "type", params: { type: "number" }, message: "must be number" };
11089
+ vErrors === null ? vErrors = [err26] : vErrors.push(err26), errors++;
11090
+ }
11091
+ } else {
11092
+ let err27 = { instancePath: instancePath + "/manualOffset", schemaPath: "#/$defs/sp-delta/type", keyword: "type", params: { type: "array" }, message: "must be array" };
11093
+ vErrors === null ? vErrors = [err27] : vErrors.push(err27), errors++;
11094
+ }
11095
+ }
11096
+ if (data.avoidCollisions !== void 0 && typeof data.avoidCollisions != "boolean") {
11097
+ let err28 = { instancePath: instancePath + "/avoidCollisions", schemaPath: "#/properties/avoidCollisions/type", keyword: "type", params: { type: "boolean" }, message: "must be boolean" };
11098
+ vErrors === null ? vErrors = [err28] : vErrors.push(err28), errors++;
11099
+ }
11100
+ } else {
11101
+ let err29 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
11102
+ vErrors === null ? vErrors = [err29] : vErrors.push(err29), errors++;
11103
+ }
11104
+ return validate432.errors = vErrors, errors === 0;
11105
+ }
11106
+ validate432.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
11107
+ var swing = validate434;
11108
+ function validate434(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
11109
+ let vErrors = null, errors = 0, evaluated0 = validate434.evaluated;
11110
+ evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0);
11111
+ let _errs0 = errors, valid0 = !1, passing0 = null, _errs1 = errors;
11112
+ if (data && typeof data == "object" && !Array.isArray(data)) {
11113
+ if (data.mode === void 0) {
11114
+ let err0 = { instancePath, schemaPath: "#/oneOf/0/required", keyword: "required", params: { missingProperty: "mode" }, message: "must have required property 'mode'" };
11115
+ vErrors === null ? vErrors = [err0] : vErrors.push(err0), errors++;
11116
+ }
11117
+ for (let key0 in data)
11118
+ if (key0 !== "mode") {
11119
+ let err1 = { instancePath, schemaPath: "#/oneOf/0/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: key0 }, message: "must NOT have additional properties" };
11120
+ vErrors === null ? vErrors = [err1] : vErrors.push(err1), errors++;
11121
+ }
11122
+ if (data.mode !== void 0) {
11123
+ let data0 = data.mode;
11124
+ if (typeof data0 != "string") {
11125
+ let err2 = { instancePath: instancePath + "/mode", schemaPath: "#/oneOf/0/properties/mode/type", keyword: "type", params: { type: "string" }, message: "must be string" };
11126
+ vErrors === null ? vErrors = [err2] : vErrors.push(err2), errors++;
11127
+ }
11128
+ if (data0 !== "straight") {
11129
+ let err3 = { instancePath: instancePath + "/mode", schemaPath: "#/oneOf/0/properties/mode/const", keyword: "const", params: { allowedValue: "straight" }, message: "must be equal to constant" };
11130
+ vErrors === null ? vErrors = [err3] : vErrors.push(err3), errors++;
11131
+ }
11132
+ }
11133
+ } else {
11134
+ let err4 = { instancePath, schemaPath: "#/oneOf/0/type", keyword: "type", params: { type: "object" }, message: "must be object" };
11135
+ vErrors === null ? vErrors = [err4] : vErrors.push(err4), errors++;
11136
+ }
11137
+ var _valid0 = _errs1 === errors;
11138
+ if (_valid0) {
11139
+ valid0 = !0, passing0 = 0;
11140
+ var props0 = !0;
11141
+ }
11142
+ let _errs6 = errors;
11143
+ if (data && typeof data == "object" && !Array.isArray(data)) {
11144
+ if (data.mode === void 0) {
11145
+ let err5 = { instancePath, schemaPath: "#/oneOf/1/required", keyword: "required", params: { missingProperty: "mode" }, message: "must have required property 'mode'" };
11146
+ vErrors === null ? vErrors = [err5] : vErrors.push(err5), errors++;
11147
+ }
11148
+ if (data.subdivision === void 0) {
11149
+ let err6 = { instancePath, schemaPath: "#/oneOf/1/required", keyword: "required", params: { missingProperty: "subdivision" }, message: "must have required property 'subdivision'" };
11150
+ vErrors === null ? vErrors = [err6] : vErrors.push(err6), errors++;
11151
+ }
11152
+ if (data.ratio === void 0) {
11153
+ let err7 = { instancePath, schemaPath: "#/oneOf/1/required", keyword: "required", params: { missingProperty: "ratio" }, message: "must have required property 'ratio'" };
11154
+ vErrors === null ? vErrors = [err7] : vErrors.push(err7), errors++;
11155
+ }
11156
+ for (let key1 in data)
11157
+ if (!(key1 === "mode" || key1 === "subdivision" || key1 === "ratio")) {
11158
+ let err8 = { instancePath, schemaPath: "#/oneOf/1/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: key1 }, message: "must NOT have additional properties" };
11159
+ vErrors === null ? vErrors = [err8] : vErrors.push(err8), errors++;
11160
+ }
11161
+ if (data.mode !== void 0) {
11162
+ let data1 = data.mode;
11163
+ if (typeof data1 != "string") {
11164
+ let err9 = { instancePath: instancePath + "/mode", schemaPath: "#/oneOf/1/properties/mode/type", keyword: "type", params: { type: "string" }, message: "must be string" };
11165
+ vErrors === null ? vErrors = [err9] : vErrors.push(err9), errors++;
11166
+ }
11167
+ if (data1 !== "swing") {
11168
+ let err10 = { instancePath: instancePath + "/mode", schemaPath: "#/oneOf/1/properties/mode/const", keyword: "const", params: { allowedValue: "swing" }, message: "must be equal to constant" };
11169
+ vErrors === null ? vErrors = [err10] : vErrors.push(err10), errors++;
11170
+ }
11171
+ }
11172
+ if (data.subdivision !== void 0) {
11173
+ let data2 = data.subdivision;
11174
+ if (typeof data2 != "string") {
11175
+ let err11 = { instancePath: instancePath + "/subdivision", schemaPath: "#/oneOf/1/properties/subdivision/type", keyword: "type", params: { type: "string" }, message: "must be string" };
11176
+ vErrors === null ? vErrors = [err11] : vErrors.push(err11), errors++;
11177
+ }
11178
+ if (!(data2 === "eighth" || data2 === "16th")) {
11179
+ let err12 = { instancePath: instancePath + "/subdivision", schemaPath: "#/oneOf/1/properties/subdivision/enum", keyword: "enum", params: { allowedValues: schema379.oneOf[1].properties.subdivision.enum }, message: "must be equal to one of the allowed values" };
11180
+ vErrors === null ? vErrors = [err12] : vErrors.push(err12), errors++;
11181
+ }
11182
+ }
11183
+ if (data.ratio !== void 0) {
11184
+ let data3 = data.ratio;
10576
11185
  if (Array.isArray(data3)) {
10577
11186
  if (data3.length > 2) {
10578
- let err3 = { instancePath: instancePath + "/manualOffset", schemaPath: "#/$defs/sp-delta/maxItems", keyword: "maxItems", params: { limit: 2 }, message: "must NOT have more than 2 items" };
10579
- vErrors === null ? vErrors = [err3] : vErrors.push(err3), errors++;
11187
+ let err13 = { instancePath: instancePath + "/ratio", schemaPath: "#/oneOf/1/properties/ratio/maxItems", keyword: "maxItems", params: { limit: 2 }, message: "must NOT have more than 2 items" };
11188
+ vErrors === null ? vErrors = [err13] : vErrors.push(err13), errors++;
10580
11189
  }
10581
11190
  if (data3.length < 2) {
10582
- let err4 = { instancePath: instancePath + "/manualOffset", schemaPath: "#/$defs/sp-delta/minItems", keyword: "minItems", params: { limit: 2 }, message: "must NOT have fewer than 2 items" };
10583
- vErrors === null ? vErrors = [err4] : vErrors.push(err4), errors++;
11191
+ let err14 = { instancePath: instancePath + "/ratio", schemaPath: "#/oneOf/1/properties/ratio/minItems", keyword: "minItems", params: { limit: 2 }, message: "must NOT have fewer than 2 items" };
11192
+ vErrors === null ? vErrors = [err14] : vErrors.push(err14), errors++;
10584
11193
  }
10585
11194
  let len0 = data3.length;
10586
- for (let i0 = 0; i0 < len0; i0++)
10587
- if (typeof data3[i0] != "number") {
10588
- let err5 = { instancePath: instancePath + "/manualOffset/" + i0, schemaPath: "#/$defs/sp-delta/items/type", keyword: "type", params: { type: "number" }, message: "must be number" };
10589
- vErrors === null ? vErrors = [err5] : vErrors.push(err5), errors++;
11195
+ for (let i0 = 0; i0 < len0; i0++) {
11196
+ let data4 = data3[i0];
11197
+ if (!(typeof data4 == "number" && !(data4 % 1) && !isNaN(data4))) {
11198
+ let err15 = { instancePath: instancePath + "/ratio/" + i0, schemaPath: "#/oneOf/1/properties/ratio/items/type", keyword: "type", params: { type: "integer" }, message: "must be integer" };
11199
+ vErrors === null ? vErrors = [err15] : vErrors.push(err15), errors++;
10590
11200
  }
11201
+ if (typeof data4 == "number") {
11202
+ if (data4 > 9007199254740991 || isNaN(data4)) {
11203
+ let err16 = { instancePath: instancePath + "/ratio/" + i0, schemaPath: "#/oneOf/1/properties/ratio/items/maximum", keyword: "maximum", params: { comparison: "<=", limit: 9007199254740991 }, message: "must be <= 9007199254740991" };
11204
+ vErrors === null ? vErrors = [err16] : vErrors.push(err16), errors++;
11205
+ }
11206
+ if (data4 < 1 || isNaN(data4)) {
11207
+ let err17 = { instancePath: instancePath + "/ratio/" + i0, schemaPath: "#/oneOf/1/properties/ratio/items/minimum", keyword: "minimum", params: { comparison: ">=", limit: 1 }, message: "must be >= 1" };
11208
+ vErrors === null ? vErrors = [err17] : vErrors.push(err17), errors++;
11209
+ }
11210
+ }
11211
+ }
10591
11212
  } else {
10592
- let err6 = { instancePath: instancePath + "/manualOffset", schemaPath: "#/$defs/sp-delta/type", keyword: "type", params: { type: "array" }, message: "must be array" };
10593
- vErrors === null ? vErrors = [err6] : vErrors.push(err6), errors++;
11213
+ let err18 = { instancePath: instancePath + "/ratio", schemaPath: "#/oneOf/1/properties/ratio/type", keyword: "type", params: { type: "array" }, message: "must be array" };
11214
+ vErrors === null ? vErrors = [err18] : vErrors.push(err18), errors++;
10594
11215
  }
10595
11216
  }
10596
- if (data.avoidCollisions !== void 0 && typeof data.avoidCollisions != "boolean") {
10597
- let err7 = { instancePath: instancePath + "/avoidCollisions", schemaPath: "#/properties/avoidCollisions/type", keyword: "type", params: { type: "boolean" }, message: "must be boolean" };
10598
- vErrors === null ? vErrors = [err7] : vErrors.push(err7), errors++;
10599
- }
10600
11217
  } else {
10601
- let err8 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
10602
- vErrors === null ? vErrors = [err8] : vErrors.push(err8), errors++;
11218
+ let err19 = { instancePath, schemaPath: "#/oneOf/1/type", keyword: "type", params: { type: "object" }, message: "must be object" };
11219
+ vErrors === null ? vErrors = [err19] : vErrors.push(err19), errors++;
11220
+ }
11221
+ var _valid0 = _errs6 === errors;
11222
+ if (_valid0 && valid0 ? (valid0 = !1, passing0 = [passing0, 1]) : _valid0 && (valid0 = !0, passing0 = 1, props0 !== !0 && (props0 = !0)), valid0)
11223
+ errors = _errs0, vErrors !== null && (_errs0 ? vErrors.length = _errs0 : vErrors = null);
11224
+ else {
11225
+ let err20 = { instancePath, schemaPath: "#/oneOf", keyword: "oneOf", params: { passingSchemas: passing0 }, message: "must match exactly one schema in oneOf" };
11226
+ vErrors === null ? vErrors = [err20] : vErrors.push(err20), errors++;
10603
11227
  }
10604
- return validate429.errors = vErrors, errors === 0;
11228
+ return validate434.errors = vErrors, evaluated0.props = props0, errors === 0;
10605
11229
  }
10606
- validate429.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
10607
- var schema407 = { type: "object", description: "Viritura vendor extensions on an MNX part object (the `_x.viritura` dict on a part). Carries instrument identity so the editor and audio engine can resolve a part to a stable instrument without fuzzy name matching, plus its spatial-audio stage placement.", properties: { instrumentId: { type: "string", description: "MusicXML standard sound ID identifying the part's instrument (e.g. 'wind.flutes.flute', 'wind.reed.clarinet.bflat'). With `instruments`, this is the initial instrument's ID." }, instruments: { type: "object", description: "Provisional: instruments this part can switch between, keyed by a document-local key referenced by `initialInstrument` and part-measure `instrumentChanges`.", minProperties: 1, additionalProperties: { $ref: "#/$defs/instrument-definition" } }, initialInstrument: { type: "string", minLength: 1, description: "Key into `instruments` for the instrument active at the start of the part. Required when `instruments` is present." }, midiProgram: { type: "integer", minimum: 0, maximum: 127, description: "General-MIDI program (0..127). Used directly by the audio engine." }, family: { type: "string", description: "Instrument family for spatial placement / catalog routing." }, spatial: { $ref: "#/$defs/stage-position", description: "Spatial-audio stage position in concert-hall meters, persisted from Play mode so a user's instrument arrangement survives reload." }, chordSymbolVisibility: { type: "string", enum: ["auto", "show", "hide"], description: "Source-part display policy for the score-wide harmony track. Unset or auto uses automatic placement; show or hide explicitly controls this part. This is not a layout-staff or per-chord switch." } }, additionalProperties: !1 };
10608
- function validate432(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
10609
- let vErrors = null, errors = 0, evaluated0 = validate432.evaluated;
11230
+ validate434.evaluated = { dynamicProps: !0, dynamicItems: !1 };
11231
+ var schema412 = { type: "object", description: "Viritura vendor extensions on an MNX part object (the `_x.viritura` dict on a part). Carries instrument identity so the editor and audio engine can resolve a part to a stable instrument without fuzzy name matching, plus its spatial-audio stage placement.", properties: { instrumentId: { type: "string", description: "MusicXML standard sound ID identifying the part's instrument (e.g. 'wind.flutes.flute', 'wind.reed.clarinet.bflat'). With `instruments`, this is the initial instrument's ID." }, instruments: { type: "object", description: "Provisional: instruments this part can switch between, keyed by a document-local key referenced by `initialInstrument` and part-measure `instrumentChanges`.", minProperties: 1, additionalProperties: { $ref: "#/$defs/instrument-definition" } }, initialInstrument: { type: "string", minLength: 1, description: "Key into `instruments` for the instrument active at the start of the part. Required when `instruments` is present." }, midiProgram: { type: "integer", minimum: 0, maximum: 127, description: "General-MIDI program (0..127). Used directly by the audio engine." }, family: { type: "string", description: "Instrument family for spatial placement / catalog routing." }, spatial: { $ref: "#/$defs/stage-position", description: "Spatial-audio stage position in concert-hall meters, persisted from Play mode so a user's instrument arrangement survives reload." }, chordSymbolVisibility: { type: "string", enum: ["auto", "show", "hide"], description: "Source-part display policy for the score-wide harmony track. Unset or auto uses automatic placement; show or hide explicitly controls this part. This is not a layout-staff or per-chord switch." } }, additionalProperties: !1 };
11232
+ function validate436(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
11233
+ let vErrors = null, errors = 0, evaluated0 = validate436.evaluated;
10610
11234
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
10611
11235
  if (data.instrumentId === void 0) {
10612
11236
  let err0 = { instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: "instrumentId" }, message: "must have required property 'instrumentId'" };
@@ -10721,11 +11345,11 @@ function validate432(data, { instancePath = "", parentData, parentDataProperty,
10721
11345
  let err20 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
10722
11346
  vErrors === null ? vErrors = [err20] : vErrors.push(err20), errors++;
10723
11347
  }
10724
- return validate432.errors = vErrors, errors === 0;
11348
+ return validate436.errors = vErrors, errors === 0;
10725
11349
  }
10726
- validate432.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
10727
- function validate431(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
10728
- let vErrors = null, errors = 0, evaluated0 = validate431.evaluated;
11350
+ validate436.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
11351
+ function validate435(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
11352
+ let vErrors = null, errors = 0, evaluated0 = validate435.evaluated;
10729
11353
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
10730
11354
  for (let key0 in data)
10731
11355
  if (!(key0 === "instrumentId" || key0 === "instruments" || key0 === "initialInstrument" || key0 === "midiProgram" || key0 === "family" || key0 === "spatial" || key0 === "chordSymbolVisibility")) {
@@ -10744,7 +11368,7 @@ function validate431(data, { instancePath = "", parentData, parentDataProperty,
10744
11368
  vErrors === null ? vErrors = [err2] : vErrors.push(err2), errors++;
10745
11369
  }
10746
11370
  for (let key1 in data1)
10747
- validate432(data1[key1], { instancePath: instancePath + "/instruments/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"), parentData: data1, parentDataProperty: key1, rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate432.errors : vErrors.concat(validate432.errors), errors = vErrors.length);
11371
+ validate436(data1[key1], { instancePath: instancePath + "/instruments/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"), parentData: data1, parentDataProperty: key1, rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate436.errors : vErrors.concat(validate436.errors), errors = vErrors.length);
10748
11372
  } else {
10749
11373
  let err3 = { instancePath: instancePath + "/instruments", schemaPath: "#/properties/instruments/type", keyword: "type", params: { type: "object" }, message: "must be object" };
10750
11374
  vErrors === null ? vErrors = [err3] : vErrors.push(err3), errors++;
@@ -10819,7 +11443,7 @@ function validate431(data, { instancePath = "", parentData, parentDataProperty,
10819
11443
  vErrors === null ? vErrors = [err16] : vErrors.push(err16), errors++;
10820
11444
  }
10821
11445
  if (!(data9 === "auto" || data9 === "show" || data9 === "hide")) {
10822
- let err17 = { instancePath: instancePath + "/chordSymbolVisibility", schemaPath: "#/properties/chordSymbolVisibility/enum", keyword: "enum", params: { allowedValues: schema407.properties.chordSymbolVisibility.enum }, message: "must be equal to one of the allowed values" };
11446
+ let err17 = { instancePath: instancePath + "/chordSymbolVisibility", schemaPath: "#/properties/chordSymbolVisibility/enum", keyword: "enum", params: { allowedValues: schema412.properties.chordSymbolVisibility.enum }, message: "must be equal to one of the allowed values" };
10823
11447
  vErrors === null ? vErrors = [err17] : vErrors.push(err17), errors++;
10824
11448
  }
10825
11449
  }
@@ -10827,12 +11451,12 @@ function validate431(data, { instancePath = "", parentData, parentDataProperty,
10827
11451
  let err18 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
10828
11452
  vErrors === null ? vErrors = [err18] : vErrors.push(err18), errors++;
10829
11453
  }
10830
- return validate431.errors = vErrors, errors === 0;
11454
+ return validate435.errors = vErrors, errors === 0;
10831
11455
  }
10832
- validate431.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
10833
- var schema412 = { type: "string", enum: ["normal", "x", "circleX", "diamond", "slash", "triangleUp", "triangleDown"], description: "A notehead shape. MNX has no notehead field on note, kit-note or kit-component (W3C MNX issue #249); Viritura tracks it as a vendor extension on the kit-component (per-instrument) and optionally on a pitched note (per-note override)." };
10834
- function validate434(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
10835
- let vErrors = null, errors = 0, evaluated0 = validate434.evaluated;
11456
+ validate435.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
11457
+ var schema417 = { type: "string", enum: ["normal", "x", "circleX", "diamond", "slash", "triangleUp", "triangleDown"], description: "A notehead shape. MNX has no notehead field on note, kit-note or kit-component (W3C MNX issue #249); Viritura tracks it as a vendor extension on the kit-component (per-instrument) and optionally on a pitched note (per-note override)." };
11458
+ function validate438(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
11459
+ let vErrors = null, errors = 0, evaluated0 = validate438.evaluated;
10836
11460
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
10837
11461
  for (let key0 in data)
10838
11462
  if (!(key0 === "notehead" || key0 === "drumKit")) {
@@ -10846,7 +11470,7 @@ function validate434(data, { instancePath = "", parentData, parentDataProperty,
10846
11470
  vErrors === null ? vErrors = [err1] : vErrors.push(err1), errors++;
10847
11471
  }
10848
11472
  if (!(data0 === "normal" || data0 === "x" || data0 === "circleX" || data0 === "diamond" || data0 === "slash" || data0 === "triangleUp" || data0 === "triangleDown")) {
10849
- let err2 = { instancePath: instancePath + "/notehead", schemaPath: "#/$defs/notehead-shape/enum", keyword: "enum", params: { allowedValues: schema412.enum }, message: "must be equal to one of the allowed values" };
11473
+ let err2 = { instancePath: instancePath + "/notehead", schemaPath: "#/$defs/notehead-shape/enum", keyword: "enum", params: { allowedValues: schema417.enum }, message: "must be equal to one of the allowed values" };
10850
11474
  vErrors === null ? vErrors = [err2] : vErrors.push(err2), errors++;
10851
11475
  }
10852
11476
  }
@@ -10871,13 +11495,13 @@ function validate434(data, { instancePath = "", parentData, parentDataProperty,
10871
11495
  let err6 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
10872
11496
  vErrors === null ? vErrors = [err6] : vErrors.push(err6), errors++;
10873
11497
  }
10874
- return validate434.errors = vErrors, errors === 0;
11498
+ return validate438.errors = vErrors, errors === 0;
10875
11499
  }
10876
- validate434.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
10877
- var schema413 = { type: "object", description: "Viritura vendor extensions on a part measure object.", properties: { pedals: { type: "array", items: { $ref: "#/$defs/pedal" }, description: "Piano pedal markings." }, expressions: { type: "array", items: { $ref: "#/$defs/text-expression" }, description: "Text expressions and performance directions." }, condensingOverride: { type: "string", enum: ["unison", "solo1", "solo2", "amalgamate", "divisi"], description: "User-specified condensing mode override for this measure." }, groupingDisplayOverrides: { type: "array", items: { $ref: "#/$defs/staff-grouping-display-override" }, description: "Per-staff grouping-display occurrence overrides, presentation-only and taking precedence over the time signature's own occurrence override and the document house style." }, staffMeters: { type: "array", items: { $ref: "#/$defs/staff-meter-change" }, description: "Per-staff synchronous local meter changes/resets, effective from this measure onward until changed or reset. Each staff either follows the global meter (the default, no entry needed) or a declared staff-local meter that still shares the global barline grid (`sharedDuration` or `fitMeasure` synchronization). Non-aligning/independent polymeter is out of scope." }, instrumentChanges: { type: "array", items: { $ref: "#/$defs/instrument-change" }, description: "Provisional mid-part instrument and/or transposition changes, effective from their position onward until the next change. Positions within one measure must be unique." } }, additionalProperties: !1 };
10878
- var schema415 = { type: "string", enum: ["sustain", "sostenuto", "una-corda"], description: "Piano pedal type." }, schema417 = { type: "string", enum: ["text", "bracket"], description: "Pedal marking display style. 'text' shows Ped/*, 'bracket' shows a horizontal line with hooks." };
10879
- function validate436(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
10880
- let vErrors = null, errors = 0, evaluated0 = validate436.evaluated;
11500
+ validate438.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
11501
+ var schema418 = { type: "object", description: "Viritura vendor extensions on a part measure object.", properties: { pedals: { type: "array", items: { $ref: "#/$defs/pedal" }, description: "Piano pedal markings." }, expressions: { type: "array", items: { $ref: "#/$defs/text-expression" }, description: "Text expressions and performance directions." }, condensingOverride: { type: "string", enum: ["unison", "solo1", "solo2", "amalgamate", "divisi"], description: "User-specified condensing mode override for this measure." }, groupingDisplayOverrides: { type: "array", items: { $ref: "#/$defs/staff-grouping-display-override" }, description: "Per-staff grouping-display occurrence overrides, presentation-only and taking precedence over the time signature's own occurrence override and the document house style." }, staffMeters: { type: "array", items: { $ref: "#/$defs/staff-meter-change" }, description: "Per-staff synchronous local meter changes/resets, effective from this measure onward until changed or reset. Each staff either follows the global meter (the default, no entry needed) or a declared staff-local meter that still shares the global barline grid (`sharedDuration` or `fitMeasure` synchronization). Non-aligning/independent polymeter is out of scope." }, instrumentChanges: { type: "array", items: { $ref: "#/$defs/instrument-change" }, description: "Provisional mid-part instrument and/or transposition changes, effective from their position onward until the next change. Positions within one measure must be unique." } }, additionalProperties: !1 };
11502
+ var schema420 = { type: "string", enum: ["sustain", "sostenuto", "una-corda"], description: "Piano pedal type." }, schema422 = { type: "string", enum: ["text", "bracket"], description: "Pedal marking display style. 'text' shows Ped/*, 'bracket' shows a horizontal line with hooks." };
11503
+ function validate440(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
11504
+ let vErrors = null, errors = 0, evaluated0 = validate440.evaluated;
10881
11505
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
10882
11506
  if (data.type === void 0) {
10883
11507
  let err0 = { instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: "type" }, message: "must have required property 'type'" };
@@ -10903,7 +11527,7 @@ function validate436(data, { instancePath = "", parentData, parentDataProperty,
10903
11527
  vErrors === null ? vErrors = [err4] : vErrors.push(err4), errors++;
10904
11528
  }
10905
11529
  if (!(data0 === "sustain" || data0 === "sostenuto" || data0 === "una-corda")) {
10906
- let err5 = { instancePath: instancePath + "/type", schemaPath: "#/$defs/pedal-type/enum", keyword: "enum", params: { allowedValues: schema415.enum }, message: "must be equal to one of the allowed values" };
11530
+ let err5 = { instancePath: instancePath + "/type", schemaPath: "#/$defs/pedal-type/enum", keyword: "enum", params: { allowedValues: schema420.enum }, message: "must be equal to one of the allowed values" };
10907
11531
  vErrors === null ? vErrors = [err5] : vErrors.push(err5), errors++;
10908
11532
  }
10909
11533
  }
@@ -10948,14 +11572,14 @@ function validate436(data, { instancePath = "", parentData, parentDataProperty,
10948
11572
  vErrors === null ? vErrors = [err12] : vErrors.push(err12), errors++;
10949
11573
  }
10950
11574
  }
10951
- if (data.end !== void 0 && (validate422(data.end, { instancePath: instancePath + "/end", parentData: data, parentDataProperty: "end", rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate422.errors : vErrors.concat(validate422.errors), errors = vErrors.length)), data.style !== void 0) {
11575
+ if (data.end !== void 0 && (validate425(data.end, { instancePath: instancePath + "/end", parentData: data, parentDataProperty: "end", rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate425.errors : vErrors.concat(validate425.errors), errors = vErrors.length)), data.style !== void 0) {
10952
11576
  let data5 = data.style;
10953
11577
  if (typeof data5 != "string") {
10954
11578
  let err13 = { instancePath: instancePath + "/style", schemaPath: "#/$defs/pedal-line-style/type", keyword: "type", params: { type: "string" }, message: "must be string" };
10955
11579
  vErrors === null ? vErrors = [err13] : vErrors.push(err13), errors++;
10956
11580
  }
10957
11581
  if (!(data5 === "text" || data5 === "bracket")) {
10958
- let err14 = { instancePath: instancePath + "/style", schemaPath: "#/$defs/pedal-line-style/enum", keyword: "enum", params: { allowedValues: schema417.enum }, message: "must be equal to one of the allowed values" };
11582
+ let err14 = { instancePath: instancePath + "/style", schemaPath: "#/$defs/pedal-line-style/enum", keyword: "enum", params: { allowedValues: schema422.enum }, message: "must be equal to one of the allowed values" };
10959
11583
  vErrors === null ? vErrors = [err14] : vErrors.push(err14), errors++;
10960
11584
  }
10961
11585
  }
@@ -10978,13 +11602,13 @@ function validate436(data, { instancePath = "", parentData, parentDataProperty,
10978
11602
  let err18 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
10979
11603
  vErrors === null ? vErrors = [err18] : vErrors.push(err18), errors++;
10980
11604
  }
10981
- return validate436.errors = vErrors, errors === 0;
11605
+ return validate440.errors = vErrors, errors === 0;
10982
11606
  }
10983
- validate436.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
10984
- var schema418 = { type: "object", description: "A text expression or direction at a rhythmic position (e.g. 'dolce', 'rit.', 'a tempo'). Rendered in italic serif font.", required: ["text", "position"], properties: { text: { $ref: "#/$defs/text-content" }, frame: { $ref: "#/$defs/staff-text-frame-presentation" }, pagePosition: { $ref: "#/$defs/text-frame-page-position" }, position: { $ref: "#/$defs/rhythmic-position", description: "Rhythmic position within the measure." }, placement: { $ref: "#/$defs/expression-placement" }, staff: { type: "integer", minimum: 1, description: "Staff number (1-based)." }, voice: { type: "string", description: "Voice name." }, manualOffset: { $ref: "#/$defs/sp-delta", description: "Manual [dx, dy] offset in spatia (sp), applied after automatic placement." }, avoidCollisions: { type: "boolean", description: "Whether automatic collision avoidance may re-flow this expression outward to clear other directions. Default (and when unset): true. Set false when the user manually places the expression (e.g. by dragging) so it stays exactly where put and others flow around it." } }, additionalProperties: !1 };
10985
- var schema422 = { type: "object", required: ["anchor", "offset"], properties: { anchor: { type: "string", enum: ["top", "right", "bottom", "left", "top-left", "top-right", "bottom-right", "bottom-left"] }, offset: { type: "object", required: ["x", "y"], properties: { x: { type: "number", description: "Horizontal offset in staff spaces; positive moves right." }, y: { type: "number", description: "Vertical offset in staff spaces; positive moves down." } }, additionalProperties: !1 } }, additionalProperties: !1 };
10986
- function validate441(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
10987
- let vErrors = null, errors = 0, evaluated0 = validate441.evaluated;
11607
+ validate440.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
11608
+ var schema423 = { type: "object", description: "A text expression or direction at a rhythmic position (e.g. 'dolce', 'rit.', 'a tempo'). Rendered in italic serif font.", required: ["text", "position"], properties: { text: { $ref: "#/$defs/text-content" }, frame: { $ref: "#/$defs/staff-text-frame-presentation" }, pagePosition: { $ref: "#/$defs/text-frame-page-position" }, position: { $ref: "#/$defs/rhythmic-position", description: "Rhythmic position within the measure." }, placement: { $ref: "#/$defs/expression-placement" }, staff: { type: "integer", minimum: 1, description: "Staff number (1-based)." }, voice: { type: "string", description: "Voice name." }, manualOffset: { $ref: "#/$defs/sp-delta", description: "Manual [dx, dy] offset in spatia (sp), applied after automatic placement." }, avoidCollisions: { type: "boolean", description: "Whether automatic collision avoidance may re-flow this expression outward to clear other directions. Default (and when unset): true. Set false when the user manually places the expression (e.g. by dragging) so it stays exactly where put and others flow around it." } }, additionalProperties: !1 };
11609
+ var schema427 = { type: "object", required: ["anchor", "offset"], properties: { anchor: { type: "string", enum: ["top", "right", "bottom", "left", "top-left", "top-right", "bottom-right", "bottom-left"] }, offset: { type: "object", required: ["x", "y"], properties: { x: { type: "number", description: "Horizontal offset in staff spaces; positive moves right." }, y: { type: "number", description: "Vertical offset in staff spaces; positive moves down." } }, additionalProperties: !1 } }, additionalProperties: !1 };
11610
+ function validate445(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
11611
+ let vErrors = null, errors = 0, evaluated0 = validate445.evaluated;
10988
11612
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
10989
11613
  if (data.id === void 0) {
10990
11614
  let err0 = { instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: "id" }, message: "must have required property 'id'" };
@@ -11194,7 +11818,7 @@ function validate441(data, { instancePath = "", parentData, parentDataProperty,
11194
11818
  vErrors === null ? vErrors = [err37] : vErrors.push(err37), errors++;
11195
11819
  }
11196
11820
  if (!(data11 === "top" || data11 === "right" || data11 === "bottom" || data11 === "left" || data11 === "top-left" || data11 === "top-right" || data11 === "bottom-right" || data11 === "bottom-left")) {
11197
- let err38 = { instancePath: instancePath + "/placement/anchor", schemaPath: "#/$defs/text-frame-placement/properties/anchor/enum", keyword: "enum", params: { allowedValues: schema422.properties.anchor.enum }, message: "must be equal to one of the allowed values" };
11821
+ let err38 = { instancePath: instancePath + "/placement/anchor", schemaPath: "#/$defs/text-frame-placement/properties/anchor/enum", keyword: "enum", params: { allowedValues: schema427.properties.anchor.enum }, message: "must be equal to one of the allowed values" };
11198
11822
  vErrors === null ? vErrors = [err38] : vErrors.push(err38), errors++;
11199
11823
  }
11200
11824
  }
@@ -11365,11 +11989,11 @@ function validate441(data, { instancePath = "", parentData, parentDataProperty,
11365
11989
  let err69 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
11366
11990
  vErrors === null ? vErrors = [err69] : vErrors.push(err69), errors++;
11367
11991
  }
11368
- return validate441.errors = vErrors, errors === 0;
11992
+ return validate445.errors = vErrors, errors === 0;
11369
11993
  }
11370
- validate441.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
11371
- function validate439(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
11372
- let vErrors = null, errors = 0, evaluated0 = validate439.evaluated;
11994
+ validate445.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
11995
+ function validate443(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
11996
+ let vErrors = null, errors = 0, evaluated0 = validate443.evaluated;
11373
11997
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
11374
11998
  if (data.text === void 0) {
11375
11999
  let err0 = { instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: "text" }, message: "must have required property 'text'" };
@@ -11380,7 +12004,7 @@ function validate439(data, { instancePath = "", parentData, parentDataProperty,
11380
12004
  vErrors === null ? vErrors = [err1] : vErrors.push(err1), errors++;
11381
12005
  }
11382
12006
  for (let key0 in data)
11383
- if (!func1.call(schema418.properties, key0)) {
12007
+ if (!func1.call(schema423.properties, key0)) {
11384
12008
  let err2 = { instancePath, schemaPath: "#/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: key0 }, message: "must NOT have additional properties" };
11385
12009
  vErrors === null ? vErrors = [err2] : vErrors.push(err2), errors++;
11386
12010
  }
@@ -11436,7 +12060,7 @@ function validate439(data, { instancePath = "", parentData, parentDataProperty,
11436
12060
  vErrors === null ? vErrors = [err11] : vErrors.push(err11), errors++;
11437
12061
  }
11438
12062
  if (!(data5 === "left" || data5 === "center" || data5 === "right")) {
11439
- let err12 = { instancePath: instancePath + "/frame/horizontalAlignment", schemaPath: "#/$defs/staff-text-frame-presentation/properties/horizontalAlignment/enum", keyword: "enum", params: { allowedValues: schema389.properties.horizontalAlignment.enum }, message: "must be equal to one of the allowed values" };
12063
+ let err12 = { instancePath: instancePath + "/frame/horizontalAlignment", schemaPath: "#/$defs/staff-text-frame-presentation/properties/horizontalAlignment/enum", keyword: "enum", params: { allowedValues: schema392.properties.horizontalAlignment.enum }, message: "must be equal to one of the allowed values" };
11440
12064
  vErrors === null ? vErrors = [err12] : vErrors.push(err12), errors++;
11441
12065
  }
11442
12066
  }
@@ -11447,7 +12071,7 @@ function validate439(data, { instancePath = "", parentData, parentDataProperty,
11447
12071
  vErrors === null ? vErrors = [err13] : vErrors.push(err13), errors++;
11448
12072
  }
11449
12073
  if (!(data6 === "left" || data6 === "center" || data6 === "right" || data6 === "justify")) {
11450
- let err14 = { instancePath: instancePath + "/frame/paragraphJustification", schemaPath: "#/$defs/staff-text-frame-presentation/properties/paragraphJustification/enum", keyword: "enum", params: { allowedValues: schema389.properties.paragraphJustification.enum }, message: "must be equal to one of the allowed values" };
12074
+ let err14 = { instancePath: instancePath + "/frame/paragraphJustification", schemaPath: "#/$defs/staff-text-frame-presentation/properties/paragraphJustification/enum", keyword: "enum", params: { allowedValues: schema392.properties.paragraphJustification.enum }, message: "must be equal to one of the allowed values" };
11451
12075
  vErrors === null ? vErrors = [err14] : vErrors.push(err14), errors++;
11452
12076
  }
11453
12077
  }
@@ -11470,7 +12094,7 @@ function validate439(data, { instancePath = "", parentData, parentDataProperty,
11470
12094
  vErrors === null ? vErrors = [err17] : vErrors.push(err17), errors++;
11471
12095
  }
11472
12096
  if (!(data8 === "none" || data8 === "solid")) {
11473
- let err18 = { instancePath: instancePath + "/frame/border", schemaPath: "#/$defs/staff-text-frame-presentation/properties/border/enum", keyword: "enum", params: { allowedValues: schema389.properties.border.enum }, message: "must be equal to one of the allowed values" };
12097
+ let err18 = { instancePath: instancePath + "/frame/border", schemaPath: "#/$defs/staff-text-frame-presentation/properties/border/enum", keyword: "enum", params: { allowedValues: schema392.properties.border.enum }, message: "must be equal to one of the allowed values" };
11474
12098
  vErrors === null ? vErrors = [err18] : vErrors.push(err18), errors++;
11475
12099
  }
11476
12100
  }
@@ -11483,7 +12107,7 @@ function validate439(data, { instancePath = "", parentData, parentDataProperty,
11483
12107
  vErrors === null ? vErrors = [err20] : vErrors.push(err20), errors++;
11484
12108
  }
11485
12109
  }
11486
- if (data.pagePosition !== void 0 && (validate441(data.pagePosition, { instancePath: instancePath + "/pagePosition", parentData: data, parentDataProperty: "pagePosition", rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate441.errors : vErrors.concat(validate441.errors), errors = vErrors.length)), data.position !== void 0) {
12110
+ if (data.pagePosition !== void 0 && (validate445(data.pagePosition, { instancePath: instancePath + "/pagePosition", parentData: data, parentDataProperty: "pagePosition", rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate445.errors : vErrors.concat(validate445.errors), errors = vErrors.length)), data.position !== void 0) {
11487
12111
  let data11 = data.position;
11488
12112
  if (data11 && typeof data11 == "object" && !Array.isArray(data11)) {
11489
12113
  if (data11.fraction === void 0) {
@@ -11531,7 +12155,7 @@ function validate439(data, { instancePath = "", parentData, parentDataProperty,
11531
12155
  vErrors === null ? vErrors = [err28] : vErrors.push(err28), errors++;
11532
12156
  }
11533
12157
  if (!(data14 === "below" || data14 === "above")) {
11534
- let err29 = { instancePath: instancePath + "/placement", schemaPath: "#/$defs/expression-placement/enum", keyword: "enum", params: { allowedValues: schema391.enum }, message: "must be equal to one of the allowed values" };
12158
+ let err29 = { instancePath: instancePath + "/placement", schemaPath: "#/$defs/expression-placement/enum", keyword: "enum", params: { allowedValues: schema394.enum }, message: "must be equal to one of the allowed values" };
11535
12159
  vErrors === null ? vErrors = [err29] : vErrors.push(err29), errors++;
11536
12160
  }
11537
12161
  }
@@ -11580,11 +12204,11 @@ function validate439(data, { instancePath = "", parentData, parentDataProperty,
11580
12204
  let err38 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
11581
12205
  vErrors === null ? vErrors = [err38] : vErrors.push(err38), errors++;
11582
12206
  }
11583
- return validate439.errors = vErrors, errors === 0;
12207
+ return validate443.errors = vErrors, errors === 0;
11584
12208
  }
11585
- validate439.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
11586
- function validate444(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
11587
- let vErrors = null, errors = 0, evaluated0 = validate444.evaluated;
12209
+ validate443.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
12210
+ function validate448(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
12211
+ let vErrors = null, errors = 0, evaluated0 = validate448.evaluated;
11588
12212
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
11589
12213
  if (data.staff === void 0) {
11590
12214
  let err0 = { instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: "staff" }, message: "must have required property 'staff'" };
@@ -11625,12 +12249,12 @@ function validate444(data, { instancePath = "", parentData, parentDataProperty,
11625
12249
  let err7 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
11626
12250
  vErrors === null ? vErrors = [err7] : vErrors.push(err7), errors++;
11627
12251
  }
11628
- return validate444.errors = vErrors, errors === 0;
12252
+ return validate448.errors = vErrors, errors === 0;
11629
12253
  }
11630
- validate444.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
11631
- var schema432 = { type: "object", description: "A staff-local meter distinct from the global (`global.measures[].time`) meter. Semantically identical in shape to a time signature, but never engraved on other staves and never establishes the score's barline duration by itself.", required: ["count", "unit"], properties: { count: { type: "integer", minimum: 1, description: "Numerator (beats per measure) of the staff-local meter." }, unit: { type: "integer", enum: [1, 2, 4, 8, 16, 32, 64, 128], description: "Denominator (beat unit) of the staff-local meter." }, beatStructure: { type: "array", items: { type: "integer", minimum: 1 }, minItems: 1, description: "Ordered beat-group lengths in units of the staff-local meter's denominator. Values must sum to count. When omitted, Viritura resolves the conventional default structure for this count/unit, same as a global time signature." } }, additionalProperties: !1 }, schema433 = { type: "string", enum: ["sharedDuration", "fitMeasure"], description: "How a staff-local meter's measure duration relates to the global measure it shares a barline with. `sharedDuration` requires the staff-local meter's measure duration to equal the global measure's duration exactly, so ordinary written note durations already line up \u2014 no scaling. `fitMeasure` maps one complete staff-local measure onto one complete global measure by a derived exact ratio (e.g. a local 6/8 measure of two dotted-quarter pulses onto a global 2/4 measure of two quarter-note pulses), so the staff's written durations are proportionally scaled for spacing and playback while the notated meter keeps its own conventional note values." };
11632
- function validate447(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
11633
- let vErrors = null, errors = 0, evaluated0 = validate447.evaluated;
12254
+ validate448.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
12255
+ var schema437 = { type: "object", description: "A staff-local meter distinct from the global (`global.measures[].time`) meter. Semantically identical in shape to a time signature, but never engraved on other staves and never establishes the score's barline duration by itself.", required: ["count", "unit"], properties: { count: { type: "integer", minimum: 1, description: "Numerator (beats per measure) of the staff-local meter." }, unit: { type: "integer", enum: [1, 2, 4, 8, 16, 32, 64, 128], description: "Denominator (beat unit) of the staff-local meter." }, beatStructure: { type: "array", items: { type: "integer", minimum: 1 }, minItems: 1, description: "Ordered beat-group lengths in units of the staff-local meter's denominator. Values must sum to count. When omitted, Viritura resolves the conventional default structure for this count/unit, same as a global time signature." } }, additionalProperties: !1 }, schema438 = { type: "string", enum: ["sharedDuration", "fitMeasure"], description: "How a staff-local meter's measure duration relates to the global measure it shares a barline with. `sharedDuration` requires the staff-local meter's measure duration to equal the global measure's duration exactly, so ordinary written note durations already line up \u2014 no scaling. `fitMeasure` maps one complete staff-local measure onto one complete global measure by a derived exact ratio (e.g. a local 6/8 measure of two dotted-quarter pulses onto a global 2/4 measure of two quarter-note pulses), so the staff's written durations are proportionally scaled for spacing and playback while the notated meter keeps its own conventional note values." };
12256
+ function validate451(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
12257
+ let vErrors = null, errors = 0, evaluated0 = validate451.evaluated;
11634
12258
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
11635
12259
  if (data.staff === void 0) {
11636
12260
  let err0 = { instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: "staff" }, message: "must have required property 'staff'" };
@@ -11694,7 +12318,7 @@ function validate447(data, { instancePath = "", parentData, parentDataProperty,
11694
12318
  vErrors === null ? vErrors = [err11] : vErrors.push(err11), errors++;
11695
12319
  }
11696
12320
  if (!(data3 === 1 || data3 === 2 || data3 === 4 || data3 === 8 || data3 === 16 || data3 === 32 || data3 === 64 || data3 === 128)) {
11697
- let err12 = { instancePath: instancePath + "/meter/unit", schemaPath: "#/$defs/staff-meter/properties/unit/enum", keyword: "enum", params: { allowedValues: schema432.properties.unit.enum }, message: "must be equal to one of the allowed values" };
12321
+ let err12 = { instancePath: instancePath + "/meter/unit", schemaPath: "#/$defs/staff-meter/properties/unit/enum", keyword: "enum", params: { allowedValues: schema437.properties.unit.enum }, message: "must be equal to one of the allowed values" };
11698
12322
  vErrors === null ? vErrors = [err12] : vErrors.push(err12), errors++;
11699
12323
  }
11700
12324
  }
@@ -11734,7 +12358,7 @@ function validate447(data, { instancePath = "", parentData, parentDataProperty,
11734
12358
  vErrors === null ? vErrors = [err18] : vErrors.push(err18), errors++;
11735
12359
  }
11736
12360
  if (!(data6 === "sharedDuration" || data6 === "fitMeasure")) {
11737
- let err19 = { instancePath: instancePath + "/synchronization", schemaPath: "#/$defs/staff-meter-synchronization/enum", keyword: "enum", params: { allowedValues: schema433.enum }, message: "must be equal to one of the allowed values" };
12361
+ let err19 = { instancePath: instancePath + "/synchronization", schemaPath: "#/$defs/staff-meter-synchronization/enum", keyword: "enum", params: { allowedValues: schema438.enum }, message: "must be equal to one of the allowed values" };
11738
12362
  vErrors === null ? vErrors = [err19] : vErrors.push(err19), errors++;
11739
12363
  }
11740
12364
  }
@@ -11742,14 +12366,14 @@ function validate447(data, { instancePath = "", parentData, parentDataProperty,
11742
12366
  let err20 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
11743
12367
  vErrors === null ? vErrors = [err20] : vErrors.push(err20), errors++;
11744
12368
  }
11745
- return validate447.errors = vErrors, errors === 0;
12369
+ return validate451.errors = vErrors, errors === 0;
11746
12370
  }
11747
- validate447.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
11748
- function validate446(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
11749
- let vErrors = null, errors = 0, evaluated0 = validate446.evaluated;
12371
+ validate451.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
12372
+ function validate450(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
12373
+ let vErrors = null, errors = 0, evaluated0 = validate450.evaluated;
11750
12374
  evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0);
11751
12375
  let _errs0 = errors, valid0 = !1, passing0 = null, _errs1 = errors;
11752
- validate447(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate447.errors : vErrors.concat(validate447.errors), errors = vErrors.length);
12376
+ validate451(data, { instancePath, parentData, parentDataProperty, rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate451.errors : vErrors.concat(validate451.errors), errors = vErrors.length);
11753
12377
  var _valid0 = _errs1 === errors;
11754
12378
  if (_valid0) {
11755
12379
  valid0 = !0, passing0 = 0;
@@ -11803,11 +12427,11 @@ function validate446(data, { instancePath = "", parentData, parentDataProperty,
11803
12427
  let err8 = { instancePath, schemaPath: "#/oneOf", keyword: "oneOf", params: { passingSchemas: passing0 }, message: "must match exactly one schema in oneOf" };
11804
12428
  vErrors === null ? vErrors = [err8] : vErrors.push(err8), errors++;
11805
12429
  }
11806
- return validate446.errors = vErrors, evaluated0.props = props0, errors === 0;
12430
+ return validate450.errors = vErrors, evaluated0.props = props0, errors === 0;
11807
12431
  }
11808
- validate446.evaluated = { dynamicProps: !0, dynamicItems: !1 };
11809
- function validate450(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
11810
- let vErrors = null, errors = 0, evaluated0 = validate450.evaluated;
12432
+ validate450.evaluated = { dynamicProps: !0, dynamicItems: !1 };
12433
+ function validate454(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
12434
+ let vErrors = null, errors = 0, evaluated0 = validate454.evaluated;
11811
12435
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
11812
12436
  for (let key0 in data)
11813
12437
  if (!(key0 === "position" || key0 === "instrument" || key0 === "transposition" || key0 === "instruction" || key0 === "reminder")) {
@@ -11976,11 +12600,11 @@ function validate450(data, { instancePath = "", parentData, parentDataProperty,
11976
12600
  let err29 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
11977
12601
  vErrors === null ? vErrors = [err29] : vErrors.push(err29), errors++;
11978
12602
  }
11979
- return validate450.errors = vErrors, errors === 0;
12603
+ return validate454.errors = vErrors, errors === 0;
11980
12604
  }
11981
- validate450.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
11982
- function validate435(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
11983
- let vErrors = null, errors = 0, evaluated0 = validate435.evaluated;
12605
+ validate454.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
12606
+ function validate439(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
12607
+ let vErrors = null, errors = 0, evaluated0 = validate439.evaluated;
11984
12608
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
11985
12609
  for (let key0 in data)
11986
12610
  if (!(key0 === "pedals" || key0 === "expressions" || key0 === "condensingOverride" || key0 === "groupingDisplayOverrides" || key0 === "staffMeters" || key0 === "instrumentChanges")) {
@@ -11992,7 +12616,7 @@ function validate435(data, { instancePath = "", parentData, parentDataProperty,
11992
12616
  if (Array.isArray(data0)) {
11993
12617
  let len0 = data0.length;
11994
12618
  for (let i0 = 0; i0 < len0; i0++)
11995
- validate436(data0[i0], { instancePath: instancePath + "/pedals/" + i0, parentData: data0, parentDataProperty: i0, rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate436.errors : vErrors.concat(validate436.errors), errors = vErrors.length);
12619
+ validate440(data0[i0], { instancePath: instancePath + "/pedals/" + i0, parentData: data0, parentDataProperty: i0, rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate440.errors : vErrors.concat(validate440.errors), errors = vErrors.length);
11996
12620
  } else {
11997
12621
  let err1 = { instancePath: instancePath + "/pedals", schemaPath: "#/properties/pedals/type", keyword: "type", params: { type: "array" }, message: "must be array" };
11998
12622
  vErrors === null ? vErrors = [err1] : vErrors.push(err1), errors++;
@@ -12003,7 +12627,7 @@ function validate435(data, { instancePath = "", parentData, parentDataProperty,
12003
12627
  if (Array.isArray(data2)) {
12004
12628
  let len1 = data2.length;
12005
12629
  for (let i1 = 0; i1 < len1; i1++)
12006
- validate439(data2[i1], { instancePath: instancePath + "/expressions/" + i1, parentData: data2, parentDataProperty: i1, rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate439.errors : vErrors.concat(validate439.errors), errors = vErrors.length);
12630
+ validate443(data2[i1], { instancePath: instancePath + "/expressions/" + i1, parentData: data2, parentDataProperty: i1, rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate443.errors : vErrors.concat(validate443.errors), errors = vErrors.length);
12007
12631
  } else {
12008
12632
  let err2 = { instancePath: instancePath + "/expressions", schemaPath: "#/properties/expressions/type", keyword: "type", params: { type: "array" }, message: "must be array" };
12009
12633
  vErrors === null ? vErrors = [err2] : vErrors.push(err2), errors++;
@@ -12016,7 +12640,7 @@ function validate435(data, { instancePath = "", parentData, parentDataProperty,
12016
12640
  vErrors === null ? vErrors = [err3] : vErrors.push(err3), errors++;
12017
12641
  }
12018
12642
  if (!(data4 === "unison" || data4 === "solo1" || data4 === "solo2" || data4 === "amalgamate" || data4 === "divisi")) {
12019
- let err4 = { instancePath: instancePath + "/condensingOverride", schemaPath: "#/properties/condensingOverride/enum", keyword: "enum", params: { allowedValues: schema413.properties.condensingOverride.enum }, message: "must be equal to one of the allowed values" };
12643
+ let err4 = { instancePath: instancePath + "/condensingOverride", schemaPath: "#/properties/condensingOverride/enum", keyword: "enum", params: { allowedValues: schema418.properties.condensingOverride.enum }, message: "must be equal to one of the allowed values" };
12020
12644
  vErrors === null ? vErrors = [err4] : vErrors.push(err4), errors++;
12021
12645
  }
12022
12646
  }
@@ -12025,7 +12649,7 @@ function validate435(data, { instancePath = "", parentData, parentDataProperty,
12025
12649
  if (Array.isArray(data5)) {
12026
12650
  let len2 = data5.length;
12027
12651
  for (let i2 = 0; i2 < len2; i2++)
12028
- validate444(data5[i2], { instancePath: instancePath + "/groupingDisplayOverrides/" + i2, parentData: data5, parentDataProperty: i2, rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate444.errors : vErrors.concat(validate444.errors), errors = vErrors.length);
12652
+ validate448(data5[i2], { instancePath: instancePath + "/groupingDisplayOverrides/" + i2, parentData: data5, parentDataProperty: i2, rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate448.errors : vErrors.concat(validate448.errors), errors = vErrors.length);
12029
12653
  } else {
12030
12654
  let err5 = { instancePath: instancePath + "/groupingDisplayOverrides", schemaPath: "#/properties/groupingDisplayOverrides/type", keyword: "type", params: { type: "array" }, message: "must be array" };
12031
12655
  vErrors === null ? vErrors = [err5] : vErrors.push(err5), errors++;
@@ -12036,7 +12660,7 @@ function validate435(data, { instancePath = "", parentData, parentDataProperty,
12036
12660
  if (Array.isArray(data7)) {
12037
12661
  let len3 = data7.length;
12038
12662
  for (let i3 = 0; i3 < len3; i3++)
12039
- validate446(data7[i3], { instancePath: instancePath + "/staffMeters/" + i3, parentData: data7, parentDataProperty: i3, rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate446.errors : vErrors.concat(validate446.errors), errors = vErrors.length);
12663
+ validate450(data7[i3], { instancePath: instancePath + "/staffMeters/" + i3, parentData: data7, parentDataProperty: i3, rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate450.errors : vErrors.concat(validate450.errors), errors = vErrors.length);
12040
12664
  } else {
12041
12665
  let err6 = { instancePath: instancePath + "/staffMeters", schemaPath: "#/properties/staffMeters/type", keyword: "type", params: { type: "array" }, message: "must be array" };
12042
12666
  vErrors === null ? vErrors = [err6] : vErrors.push(err6), errors++;
@@ -12047,7 +12671,7 @@ function validate435(data, { instancePath = "", parentData, parentDataProperty,
12047
12671
  if (Array.isArray(data9)) {
12048
12672
  let len4 = data9.length;
12049
12673
  for (let i4 = 0; i4 < len4; i4++)
12050
- validate450(data9[i4], { instancePath: instancePath + "/instrumentChanges/" + i4, parentData: data9, parentDataProperty: i4, rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate450.errors : vErrors.concat(validate450.errors), errors = vErrors.length);
12674
+ validate454(data9[i4], { instancePath: instancePath + "/instrumentChanges/" + i4, parentData: data9, parentDataProperty: i4, rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate454.errors : vErrors.concat(validate454.errors), errors = vErrors.length);
12051
12675
  } else {
12052
12676
  let err7 = { instancePath: instancePath + "/instrumentChanges", schemaPath: "#/properties/instrumentChanges/type", keyword: "type", params: { type: "array" }, message: "must be array" };
12053
12677
  vErrors === null ? vErrors = [err7] : vErrors.push(err7), errors++;
@@ -12057,12 +12681,12 @@ function validate435(data, { instancePath = "", parentData, parentDataProperty,
12057
12681
  let err8 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
12058
12682
  vErrors === null ? vErrors = [err8] : vErrors.push(err8), errors++;
12059
12683
  }
12060
- return validate435.errors = vErrors, errors === 0;
12684
+ return validate439.errors = vErrors, errors === 0;
12061
12685
  }
12062
- validate435.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
12063
- var schema441 = { type: "object", description: "Links measure-local tuplet fragments into one logical tuplet spanning barlines. The same id and ratio must be used by contiguous fragments.", required: ["id", "type"], properties: { id: { type: "string", minLength: 1, description: "Stable identity shared by every fragment of the logical tuplet." }, type: { type: "string", enum: ["start", "continue", "stop"], description: "The fragment's position within the logical tuplet." } }, additionalProperties: !1 };
12064
- function validate452(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
12065
- let vErrors = null, errors = 0, evaluated0 = validate452.evaluated;
12686
+ validate439.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
12687
+ var schema446 = { type: "object", description: "Links measure-local tuplet fragments into one logical tuplet spanning barlines. The same id and ratio must be used by contiguous fragments.", required: ["id", "type"], properties: { id: { type: "string", minLength: 1, description: "Stable identity shared by every fragment of the logical tuplet." }, type: { type: "string", enum: ["start", "continue", "stop"], description: "The fragment's position within the logical tuplet." } }, additionalProperties: !1 };
12688
+ function validate456(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
12689
+ let vErrors = null, errors = 0, evaluated0 = validate456.evaluated;
12066
12690
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
12067
12691
  for (let key0 in data)
12068
12692
  if (key0 !== "span") {
@@ -12104,7 +12728,7 @@ function validate452(data, { instancePath = "", parentData, parentDataProperty,
12104
12728
  vErrors === null ? vErrors = [err6] : vErrors.push(err6), errors++;
12105
12729
  }
12106
12730
  if (!(data2 === "start" || data2 === "continue" || data2 === "stop")) {
12107
- let err7 = { instancePath: instancePath + "/span/type", schemaPath: "#/$defs/tuplet-span/properties/type/enum", keyword: "enum", params: { allowedValues: schema441.properties.type.enum }, message: "must be equal to one of the allowed values" };
12731
+ let err7 = { instancePath: instancePath + "/span/type", schemaPath: "#/$defs/tuplet-span/properties/type/enum", keyword: "enum", params: { allowedValues: schema446.properties.type.enum }, message: "must be equal to one of the allowed values" };
12108
12732
  vErrors === null ? vErrors = [err7] : vErrors.push(err7), errors++;
12109
12733
  }
12110
12734
  }
@@ -12117,11 +12741,11 @@ function validate452(data, { instancePath = "", parentData, parentDataProperty,
12117
12741
  let err9 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
12118
12742
  vErrors === null ? vErrors = [err9] : vErrors.push(err9), errors++;
12119
12743
  }
12120
- return validate452.errors = vErrors, errors === 0;
12744
+ return validate456.errors = vErrors, errors === 0;
12121
12745
  }
12122
- validate452.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
12123
- function validate453(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
12124
- let vErrors = null, errors = 0, evaluated0 = validate453.evaluated;
12746
+ validate456.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
12747
+ function validate457(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
12748
+ let vErrors = null, errors = 0, evaluated0 = validate457.evaluated;
12125
12749
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
12126
12750
  for (let key0 in data)
12127
12751
  if (key0 !== "staffLineRangeRestore") {
@@ -12136,11 +12760,11 @@ function validate453(data, { instancePath = "", parentData, parentDataProperty,
12136
12760
  let err2 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
12137
12761
  vErrors === null ? vErrors = [err2] : vErrors.push(err2), errors++;
12138
12762
  }
12139
- return validate453.errors = vErrors, errors === 0;
12763
+ return validate457.errors = vErrors, errors === 0;
12140
12764
  }
12141
- validate453.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
12142
- function validate454(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
12143
- let vErrors = null, errors = 0, evaluated0 = validate454.evaluated;
12765
+ validate457.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
12766
+ function validate458(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
12767
+ let vErrors = null, errors = 0, evaluated0 = validate458.evaluated;
12144
12768
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
12145
12769
  for (let key0 in data)
12146
12770
  if (!(key0 === "manualOffset" || key0 === "avoidCollisions")) {
@@ -12177,12 +12801,12 @@ function validate454(data, { instancePath = "", parentData, parentDataProperty,
12177
12801
  let err6 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
12178
12802
  vErrors === null ? vErrors = [err6] : vErrors.push(err6), errors++;
12179
12803
  }
12180
- return validate454.errors = vErrors, errors === 0;
12804
+ return validate458.errors = vErrors, errors === 0;
12181
12805
  }
12182
- validate454.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
12183
- var schema447 = { type: "string", enum: ["glissando", "portamento"], description: "Semantic kind of a glissando-family line." }, schema448 = { type: "string", enum: ["straight", "wavy"], description: "Glissando/portamento line style." };
12184
- function validate456(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
12185
- let vErrors = null, errors = 0, evaluated0 = validate456.evaluated;
12806
+ validate458.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
12807
+ var schema452 = { type: "string", enum: ["glissando", "portamento"], description: "Semantic kind of a glissando-family line." }, schema453 = { type: "string", enum: ["straight", "wavy"], description: "Glissando/portamento line style." };
12808
+ function validate460(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
12809
+ let vErrors = null, errors = 0, evaluated0 = validate460.evaluated;
12186
12810
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
12187
12811
  if (data.target === void 0) {
12188
12812
  let err0 = { instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: "target" }, message: "must have required property 'target'" };
@@ -12204,7 +12828,7 @@ function validate456(data, { instancePath = "", parentData, parentDataProperty,
12204
12828
  vErrors === null ? vErrors = [err3] : vErrors.push(err3), errors++;
12205
12829
  }
12206
12830
  if (!(data1 === "glissando" || data1 === "portamento")) {
12207
- let err4 = { instancePath: instancePath + "/kind", schemaPath: "#/$defs/glissando-kind/enum", keyword: "enum", params: { allowedValues: schema447.enum }, message: "must be equal to one of the allowed values" };
12831
+ let err4 = { instancePath: instancePath + "/kind", schemaPath: "#/$defs/glissando-kind/enum", keyword: "enum", params: { allowedValues: schema452.enum }, message: "must be equal to one of the allowed values" };
12208
12832
  vErrors === null ? vErrors = [err4] : vErrors.push(err4), errors++;
12209
12833
  }
12210
12834
  }
@@ -12215,7 +12839,7 @@ function validate456(data, { instancePath = "", parentData, parentDataProperty,
12215
12839
  vErrors === null ? vErrors = [err5] : vErrors.push(err5), errors++;
12216
12840
  }
12217
12841
  if (!(data2 === "straight" || data2 === "wavy")) {
12218
- let err6 = { instancePath: instancePath + "/style", schemaPath: "#/$defs/glissando-style/enum", keyword: "enum", params: { allowedValues: schema448.enum }, message: "must be equal to one of the allowed values" };
12842
+ let err6 = { instancePath: instancePath + "/style", schemaPath: "#/$defs/glissando-style/enum", keyword: "enum", params: { allowedValues: schema453.enum }, message: "must be equal to one of the allowed values" };
12219
12843
  vErrors === null ? vErrors = [err6] : vErrors.push(err6), errors++;
12220
12844
  }
12221
12845
  }
@@ -12231,11 +12855,11 @@ function validate456(data, { instancePath = "", parentData, parentDataProperty,
12231
12855
  let err9 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
12232
12856
  vErrors === null ? vErrors = [err9] : vErrors.push(err9), errors++;
12233
12857
  }
12234
- return validate456.errors = vErrors, errors === 0;
12858
+ return validate460.errors = vErrors, errors === 0;
12235
12859
  }
12236
- validate456.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
12237
- function validate455(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
12238
- let vErrors = null, errors = 0, evaluated0 = validate455.evaluated;
12860
+ validate460.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
12861
+ function validate459(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
12862
+ let vErrors = null, errors = 0, evaluated0 = validate459.evaluated;
12239
12863
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
12240
12864
  for (let key0 in data)
12241
12865
  if (key0 !== "glissandos") {
@@ -12247,7 +12871,7 @@ function validate455(data, { instancePath = "", parentData, parentDataProperty,
12247
12871
  if (Array.isArray(data0)) {
12248
12872
  let len0 = data0.length;
12249
12873
  for (let i0 = 0; i0 < len0; i0++)
12250
- validate456(data0[i0], { instancePath: instancePath + "/glissandos/" + i0, parentData: data0, parentDataProperty: i0, rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate456.errors : vErrors.concat(validate456.errors), errors = vErrors.length);
12874
+ validate460(data0[i0], { instancePath: instancePath + "/glissandos/" + i0, parentData: data0, parentDataProperty: i0, rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate460.errors : vErrors.concat(validate460.errors), errors = vErrors.length);
12251
12875
  } else {
12252
12876
  let err1 = { instancePath: instancePath + "/glissandos", schemaPath: "#/properties/glissandos/type", keyword: "type", params: { type: "array" }, message: "must be array" };
12253
12877
  vErrors === null ? vErrors = [err1] : vErrors.push(err1), errors++;
@@ -12257,13 +12881,13 @@ function validate455(data, { instancePath = "", parentData, parentDataProperty,
12257
12881
  let err2 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
12258
12882
  vErrors === null ? vErrors = [err2] : vErrors.push(err2), errors++;
12259
12883
  }
12260
- return validate455.errors = vErrors, errors === 0;
12884
+ return validate459.errors = vErrors, errors === 0;
12261
12885
  }
12262
- validate455.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
12263
- var schema449 = { type: "object", description: "Viritura vendor extensions on an event-markings object.", properties: { staccatissimoWedge: { type: "object", description: "Staccatissimo wedge articulation variant (SMuFL articStaccatissimoWedge).", properties: { placement: { type: "string", enum: ["above", "below", "auto"], description: "Vertical placement relative to the staff." } }, additionalProperties: !1 }, trill: { $ref: "#/$defs/trill" }, ornaments: { type: "array", items: { $ref: "#/$defs/ornament-type" }, description: "Ornament markings (turn, mordent, etc.)." }, fingerings: { type: "array", items: { $ref: "#/$defs/fingering" }, description: "Fingering annotations." }, arpeggio: { $ref: "#/$defs/arpeggio" } }, additionalProperties: !1 }, schema452 = { type: "string", enum: ["turn", "invertedTurn", "mordent", "invertedMordent", "shortTrill", "trillMordent", "delayedTurn", "schleifer"], description: "Ornament type. Each maps to a SMuFL ornament glyph." };
12264
- var schema454 = { type: "object", description: "A rolled-chord (arpeggio) indication on a chord event: a wavy vertical line to the left of the chord. Created on MusicXML `<arpeggiate>` import and authored natively.", properties: { direction: { type: "string", enum: ["up", "down", "auto"], description: "Roll direction. Omitted means the renderer's default (upward) arpeggio." } }, additionalProperties: !1 }, schema450 = { type: "object", description: "A trill marking on a note, optionally followed by a wavy extension line.", properties: { accidental: { type: "integer", enum: [-1, 0, 1], description: "Accidental on the auxiliary note: -1 = flat, 0 = natural, 1 = sharp." }, showSymbol: { type: "boolean", description: "Whether to display the initial trill symbol. Defaults to true; set false for an extension-only line." }, extension: { $ref: "#/$defs/trill-extension" } }, additionalProperties: !1 }, schema451 = { type: "object", description: "A wavy trill-extension line from this event to a target event.", required: ["target"], properties: { target: { type: "string", description: "ID of the event where the trill-extension line ends." }, targetEdge: { type: "string", enum: ["start", "end"], description: "Which rhythmic edge of the target event ends the line. Defaults to 'start'." } }, additionalProperties: !1 };
12265
- function validate459(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
12266
- let vErrors = null, errors = 0, evaluated0 = validate459.evaluated;
12886
+ validate459.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
12887
+ var schema454 = { type: "object", description: "Viritura vendor extensions on an event-markings object.", properties: { staccatissimoWedge: { type: "object", description: "Staccatissimo wedge articulation variant (SMuFL articStaccatissimoWedge).", properties: { placement: { type: "string", enum: ["above", "below", "auto"], description: "Vertical placement relative to the staff." } }, additionalProperties: !1 }, trill: { $ref: "#/$defs/trill" }, ornaments: { type: "array", items: { $ref: "#/$defs/ornament-type" }, description: "Ornament markings (turn, mordent, etc.)." }, fingerings: { type: "array", items: { $ref: "#/$defs/fingering" }, description: "Fingering annotations." }, arpeggio: { $ref: "#/$defs/arpeggio" } }, additionalProperties: !1 }, schema457 = { type: "string", enum: ["turn", "invertedTurn", "mordent", "invertedMordent", "shortTrill", "trillMordent", "delayedTurn", "schleifer"], description: "Ornament type. Each maps to a SMuFL ornament glyph." };
12888
+ var schema459 = { type: "object", description: "A rolled-chord (arpeggio) indication on a chord event: a wavy vertical line to the left of the chord. Created on MusicXML `<arpeggiate>` import and authored natively.", properties: { direction: { type: "string", enum: ["up", "down", "auto"], description: "Roll direction. Omitted means the renderer's default (upward) arpeggio." } }, additionalProperties: !1 }, schema455 = { type: "object", description: "A trill marking on a note, optionally followed by a wavy extension line.", properties: { accidental: { type: "integer", enum: [-1, 0, 1], description: "Accidental on the auxiliary note: -1 = flat, 0 = natural, 1 = sharp." }, showSymbol: { type: "boolean", description: "Whether to display the initial trill symbol. Defaults to true; set false for an extension-only line." }, extension: { $ref: "#/$defs/trill-extension" } }, additionalProperties: !1 }, schema456 = { type: "object", description: "A wavy trill-extension line from this event to a target event.", required: ["target"], properties: { target: { type: "string", description: "ID of the event where the trill-extension line ends." }, targetEdge: { type: "string", enum: ["start", "end"], description: "Which rhythmic edge of the target event ends the line. Defaults to 'start'." } }, additionalProperties: !1 };
12889
+ function validate463(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
12890
+ let vErrors = null, errors = 0, evaluated0 = validate463.evaluated;
12267
12891
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
12268
12892
  for (let key0 in data)
12269
12893
  if (!(key0 === "accidental" || key0 === "showSymbol" || key0 === "extension")) {
@@ -12277,7 +12901,7 @@ function validate459(data, { instancePath = "", parentData, parentDataProperty,
12277
12901
  vErrors === null ? vErrors = [err1] : vErrors.push(err1), errors++;
12278
12902
  }
12279
12903
  if (!(data0 === -1 || data0 === 0 || data0 === 1)) {
12280
- let err2 = { instancePath: instancePath + "/accidental", schemaPath: "#/properties/accidental/enum", keyword: "enum", params: { allowedValues: schema450.properties.accidental.enum }, message: "must be equal to one of the allowed values" };
12904
+ let err2 = { instancePath: instancePath + "/accidental", schemaPath: "#/properties/accidental/enum", keyword: "enum", params: { allowedValues: schema455.properties.accidental.enum }, message: "must be equal to one of the allowed values" };
12281
12905
  vErrors === null ? vErrors = [err2] : vErrors.push(err2), errors++;
12282
12906
  }
12283
12907
  }
@@ -12308,7 +12932,7 @@ function validate459(data, { instancePath = "", parentData, parentDataProperty,
12308
12932
  vErrors === null ? vErrors = [err7] : vErrors.push(err7), errors++;
12309
12933
  }
12310
12934
  if (!(data4 === "start" || data4 === "end")) {
12311
- let err8 = { instancePath: instancePath + "/extension/targetEdge", schemaPath: "#/$defs/trill-extension/properties/targetEdge/enum", keyword: "enum", params: { allowedValues: schema451.properties.targetEdge.enum }, message: "must be equal to one of the allowed values" };
12935
+ let err8 = { instancePath: instancePath + "/extension/targetEdge", schemaPath: "#/$defs/trill-extension/properties/targetEdge/enum", keyword: "enum", params: { allowedValues: schema456.properties.targetEdge.enum }, message: "must be equal to one of the allowed values" };
12312
12936
  vErrors === null ? vErrors = [err8] : vErrors.push(err8), errors++;
12313
12937
  }
12314
12938
  }
@@ -12321,11 +12945,11 @@ function validate459(data, { instancePath = "", parentData, parentDataProperty,
12321
12945
  let err10 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
12322
12946
  vErrors === null ? vErrors = [err10] : vErrors.push(err10), errors++;
12323
12947
  }
12324
- return validate459.errors = vErrors, errors === 0;
12948
+ return validate463.errors = vErrors, errors === 0;
12325
12949
  }
12326
- validate459.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
12327
- function validate458(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
12328
- let vErrors = null, errors = 0, evaluated0 = validate458.evaluated;
12950
+ validate463.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
12951
+ function validate462(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
12952
+ let vErrors = null, errors = 0, evaluated0 = validate462.evaluated;
12329
12953
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
12330
12954
  for (let key0 in data)
12331
12955
  if (!(key0 === "staccatissimoWedge" || key0 === "trill" || key0 === "ornaments" || key0 === "fingerings" || key0 === "arpeggio")) {
@@ -12347,7 +12971,7 @@ function validate458(data, { instancePath = "", parentData, parentDataProperty,
12347
12971
  vErrors === null ? vErrors = [err2] : vErrors.push(err2), errors++;
12348
12972
  }
12349
12973
  if (!(data1 === "above" || data1 === "below" || data1 === "auto")) {
12350
- let err3 = { instancePath: instancePath + "/staccatissimoWedge/placement", schemaPath: "#/properties/staccatissimoWedge/properties/placement/enum", keyword: "enum", params: { allowedValues: schema449.properties.staccatissimoWedge.properties.placement.enum }, message: "must be equal to one of the allowed values" };
12974
+ let err3 = { instancePath: instancePath + "/staccatissimoWedge/placement", schemaPath: "#/properties/staccatissimoWedge/properties/placement/enum", keyword: "enum", params: { allowedValues: schema454.properties.staccatissimoWedge.properties.placement.enum }, message: "must be equal to one of the allowed values" };
12351
12975
  vErrors === null ? vErrors = [err3] : vErrors.push(err3), errors++;
12352
12976
  }
12353
12977
  }
@@ -12356,7 +12980,7 @@ function validate458(data, { instancePath = "", parentData, parentDataProperty,
12356
12980
  vErrors === null ? vErrors = [err4] : vErrors.push(err4), errors++;
12357
12981
  }
12358
12982
  }
12359
- if (data.trill !== void 0 && (validate459(data.trill, { instancePath: instancePath + "/trill", parentData: data, parentDataProperty: "trill", rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate459.errors : vErrors.concat(validate459.errors), errors = vErrors.length)), data.ornaments !== void 0) {
12983
+ if (data.trill !== void 0 && (validate463(data.trill, { instancePath: instancePath + "/trill", parentData: data, parentDataProperty: "trill", rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate463.errors : vErrors.concat(validate463.errors), errors = vErrors.length)), data.ornaments !== void 0) {
12360
12984
  let data3 = data.ornaments;
12361
12985
  if (Array.isArray(data3)) {
12362
12986
  let len0 = data3.length;
@@ -12367,7 +12991,7 @@ function validate458(data, { instancePath = "", parentData, parentDataProperty,
12367
12991
  vErrors === null ? vErrors = [err5] : vErrors.push(err5), errors++;
12368
12992
  }
12369
12993
  if (!(data4 === "turn" || data4 === "invertedTurn" || data4 === "mordent" || data4 === "invertedMordent" || data4 === "shortTrill" || data4 === "trillMordent" || data4 === "delayedTurn" || data4 === "schleifer")) {
12370
- let err6 = { instancePath: instancePath + "/ornaments/" + i0, schemaPath: "#/$defs/ornament-type/enum", keyword: "enum", params: { allowedValues: schema452.enum }, message: "must be equal to one of the allowed values" };
12994
+ let err6 = { instancePath: instancePath + "/ornaments/" + i0, schemaPath: "#/$defs/ornament-type/enum", keyword: "enum", params: { allowedValues: schema457.enum }, message: "must be equal to one of the allowed values" };
12371
12995
  vErrors === null ? vErrors = [err6] : vErrors.push(err6), errors++;
12372
12996
  }
12373
12997
  }
@@ -12434,7 +13058,7 @@ function validate458(data, { instancePath = "", parentData, parentDataProperty,
12434
13058
  vErrors === null ? vErrors = [err16] : vErrors.push(err16), errors++;
12435
13059
  }
12436
13060
  if (!(data9 === "up" || data9 === "down" || data9 === "auto")) {
12437
- let err17 = { instancePath: instancePath + "/arpeggio/direction", schemaPath: "#/$defs/arpeggio/properties/direction/enum", keyword: "enum", params: { allowedValues: schema454.properties.direction.enum }, message: "must be equal to one of the allowed values" };
13061
+ let err17 = { instancePath: instancePath + "/arpeggio/direction", schemaPath: "#/$defs/arpeggio/properties/direction/enum", keyword: "enum", params: { allowedValues: schema459.properties.direction.enum }, message: "must be equal to one of the allowed values" };
12438
13062
  vErrors === null ? vErrors = [err17] : vErrors.push(err17), errors++;
12439
13063
  }
12440
13064
  }
@@ -12447,11 +13071,11 @@ function validate458(data, { instancePath = "", parentData, parentDataProperty,
12447
13071
  let err19 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
12448
13072
  vErrors === null ? vErrors = [err19] : vErrors.push(err19), errors++;
12449
13073
  }
12450
- return validate458.errors = vErrors, errors === 0;
13074
+ return validate462.errors = vErrors, errors === 0;
12451
13075
  }
12452
- validate458.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
12453
- function validate461(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
12454
- let vErrors = null, errors = 0, evaluated0 = validate461.evaluated;
13076
+ validate462.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
13077
+ function validate465(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
13078
+ let vErrors = null, errors = 0, evaluated0 = validate465.evaluated;
12455
13079
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
12456
13080
  for (let key0 in data)
12457
13081
  if (key0 !== "notehead") {
@@ -12465,7 +13089,7 @@ function validate461(data, { instancePath = "", parentData, parentDataProperty,
12465
13089
  vErrors === null ? vErrors = [err1] : vErrors.push(err1), errors++;
12466
13090
  }
12467
13091
  if (!(data0 === "normal" || data0 === "x" || data0 === "circleX" || data0 === "diamond" || data0 === "slash" || data0 === "triangleUp" || data0 === "triangleDown")) {
12468
- let err2 = { instancePath: instancePath + "/notehead", schemaPath: "#/$defs/notehead-shape/enum", keyword: "enum", params: { allowedValues: schema412.enum }, message: "must be equal to one of the allowed values" };
13092
+ let err2 = { instancePath: instancePath + "/notehead", schemaPath: "#/$defs/notehead-shape/enum", keyword: "enum", params: { allowedValues: schema417.enum }, message: "must be equal to one of the allowed values" };
12469
13093
  vErrors === null ? vErrors = [err2] : vErrors.push(err2), errors++;
12470
13094
  }
12471
13095
  }
@@ -12473,11 +13097,11 @@ function validate461(data, { instancePath = "", parentData, parentDataProperty,
12473
13097
  let err3 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
12474
13098
  vErrors === null ? vErrors = [err3] : vErrors.push(err3), errors++;
12475
13099
  }
12476
- return validate461.errors = vErrors, errors === 0;
13100
+ return validate465.errors = vErrors, errors === 0;
12477
13101
  }
12478
- validate461.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
12479
- function validate463(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
12480
- let vErrors = null, errors = 0, evaluated0 = validate463.evaluated;
13102
+ validate465.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
13103
+ function validate467(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
13104
+ let vErrors = null, errors = 0, evaluated0 = validate467.evaluated;
12481
13105
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
12482
13106
  for (let key0 in data)
12483
13107
  if (!(key0 === "p0" || key0 === "p1" || key0 === "p2" || key0 === "p3")) {
@@ -12576,27 +13200,27 @@ function validate463(data, { instancePath = "", parentData, parentDataProperty,
12576
13200
  let err17 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
12577
13201
  vErrors === null ? vErrors = [err17] : vErrors.push(err17), errors++;
12578
13202
  }
12579
- return validate463.errors = vErrors, errors === 0;
13203
+ return validate467.errors = vErrors, errors === 0;
12580
13204
  }
12581
- validate463.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
12582
- function validate462(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
12583
- let vErrors = null, errors = 0, evaluated0 = validate462.evaluated;
13205
+ validate467.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
13206
+ function validate466(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
13207
+ let vErrors = null, errors = 0, evaluated0 = validate466.evaluated;
12584
13208
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
12585
13209
  for (let key0 in data)
12586
13210
  if (key0 !== "shape") {
12587
13211
  let err0 = { instancePath, schemaPath: "#/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: key0 }, message: "must NOT have additional properties" };
12588
13212
  vErrors === null ? vErrors = [err0] : vErrors.push(err0), errors++;
12589
13213
  }
12590
- data.shape !== void 0 && (validate463(data.shape, { instancePath: instancePath + "/shape", parentData: data, parentDataProperty: "shape", rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate463.errors : vErrors.concat(validate463.errors), errors = vErrors.length));
13214
+ data.shape !== void 0 && (validate467(data.shape, { instancePath: instancePath + "/shape", parentData: data, parentDataProperty: "shape", rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate467.errors : vErrors.concat(validate467.errors), errors = vErrors.length));
12591
13215
  } else {
12592
13216
  let err1 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
12593
13217
  vErrors === null ? vErrors = [err1] : vErrors.push(err1), errors++;
12594
13218
  }
12595
- return validate462.errors = vErrors, errors === 0;
13219
+ return validate466.errors = vErrors, errors === 0;
12596
13220
  }
12597
- validate462.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
12598
- function validate465(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
12599
- let vErrors = null, errors = 0, evaluated0 = validate465.evaluated;
13221
+ validate466.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
13222
+ function validate469(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
13223
+ let vErrors = null, errors = 0, evaluated0 = validate469.evaluated;
12600
13224
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
12601
13225
  for (let key0 in data)
12602
13226
  if (key0 !== "derived") {
@@ -12618,11 +13242,11 @@ function validate465(data, { instancePath = "", parentData, parentDataProperty,
12618
13242
  let err3 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
12619
13243
  vErrors === null ? vErrors = [err3] : vErrors.push(err3), errors++;
12620
13244
  }
12621
- return validate465.errors = vErrors, errors === 0;
13245
+ return validate469.errors = vErrors, errors === 0;
12622
13246
  }
12623
- validate465.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
12624
- function validate466(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
12625
- let vErrors = null, errors = 0, evaluated0 = validate466.evaluated;
13247
+ validate469.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
13248
+ function validate470(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
13249
+ let vErrors = null, errors = 0, evaluated0 = validate470.evaluated;
12626
13250
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data))
12627
13251
  for (let key0 in data) {
12628
13252
  let err0 = { instancePath, schemaPath: "#/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: key0 }, message: "must NOT have additional properties" };
@@ -12632,20 +13256,20 @@ function validate466(data, { instancePath = "", parentData, parentDataProperty,
12632
13256
  let err1 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
12633
13257
  vErrors === null ? vErrors = [err1] : vErrors.push(err1), errors++;
12634
13258
  }
12635
- return validate466.errors = vErrors, errors === 0;
13259
+ return validate470.errors = vErrors, errors === 0;
12636
13260
  }
12637
- validate466.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
12638
- var schema482 = { type: "object", description: "A forced system or page start within otherwise automatic score flow.", required: ["measure", "kind"], properties: { measure: { type: "string", minLength: 1 }, kind: { type: "string", enum: ["system", "page"] } }, additionalProperties: !1 }, schema466 = { type: "object", properties: { width: { type: "number", exclusiveMinimum: 0 }, height: { type: "number", exclusiveMinimum: 0 }, orientation: { type: "string", enum: ["portrait", "landscape"] }, margins: { $ref: "#/$defs/page-margins" }, spatiumMm: { type: "number", exclusiveMinimum: 0 }, pageTurns: { $ref: "#/$defs/page-turn-settings" } }, additionalProperties: !1 };
12639
- var schema468 = { type: "object", required: ["enabled"], properties: { enabled: { type: "boolean" }, preset: { type: "string", enum: ["relaxed", "professional"] }, comfortableSecs: { type: "number", minimum: 0 }, vsSecs: { type: "number", minimum: 0 }, minAcceptableSecs: { type: "number", minimum: 0 }, targetFillFraction: { type: "number", minimum: 0, maximum: 1 }, minFillFraction: { type: "number", minimum: 0, maximum: 1 }, verticalJustifyThreshold: { type: "number", minimum: 0, maximum: 1 }, allowPartialPages: { type: "boolean" }, allowIntentionalBlanks: { type: "boolean" }, titlePage: { type: "string", enum: ["auto", "always", "never"] }, firstPageRecto: { type: "boolean" }, emitVsMarks: { type: "boolean" }, defaultBpm: { type: "number", exclusiveMinimum: 0 }, weights: { $ref: "#/$defs/page-turn-weights" } }, additionalProperties: !1 };
12640
- function validate469(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
12641
- let vErrors = null, errors = 0, evaluated0 = validate469.evaluated;
13261
+ validate470.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
13262
+ var schema487 = { type: "object", description: "A forced system or page start within otherwise automatic score flow.", required: ["measure", "kind"], properties: { measure: { type: "string", minLength: 1 }, kind: { type: "string", enum: ["system", "page"] } }, additionalProperties: !1 }, schema471 = { type: "object", properties: { width: { type: "number", exclusiveMinimum: 0 }, height: { type: "number", exclusiveMinimum: 0 }, orientation: { type: "string", enum: ["portrait", "landscape"] }, margins: { $ref: "#/$defs/page-margins" }, spatiumMm: { type: "number", exclusiveMinimum: 0 }, pageTurns: { $ref: "#/$defs/page-turn-settings" } }, additionalProperties: !1 };
13263
+ var schema473 = { type: "object", required: ["enabled"], properties: { enabled: { type: "boolean" }, preset: { type: "string", enum: ["relaxed", "professional"] }, comfortableSecs: { type: "number", minimum: 0 }, vsSecs: { type: "number", minimum: 0 }, minAcceptableSecs: { type: "number", minimum: 0 }, targetFillFraction: { type: "number", minimum: 0, maximum: 1 }, minFillFraction: { type: "number", minimum: 0, maximum: 1 }, verticalJustifyThreshold: { type: "number", minimum: 0, maximum: 1 }, allowPartialPages: { type: "boolean" }, allowIntentionalBlanks: { type: "boolean" }, titlePage: { type: "string", enum: ["auto", "always", "never"] }, firstPageRecto: { type: "boolean" }, emitVsMarks: { type: "boolean" }, defaultBpm: { type: "number", exclusiveMinimum: 0 }, weights: { $ref: "#/$defs/page-turn-weights" } }, additionalProperties: !1 };
13264
+ function validate473(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
13265
+ let vErrors = null, errors = 0, evaluated0 = validate473.evaluated;
12642
13266
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
12643
13267
  if (data.enabled === void 0) {
12644
13268
  let err0 = { instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: "enabled" }, message: "must have required property 'enabled'" };
12645
13269
  vErrors === null ? vErrors = [err0] : vErrors.push(err0), errors++;
12646
13270
  }
12647
13271
  for (let key0 in data)
12648
- if (!func1.call(schema468.properties, key0)) {
13272
+ if (!func1.call(schema473.properties, key0)) {
12649
13273
  let err1 = { instancePath, schemaPath: "#/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: key0 }, message: "must NOT have additional properties" };
12650
13274
  vErrors === null ? vErrors = [err1] : vErrors.push(err1), errors++;
12651
13275
  }
@@ -12660,7 +13284,7 @@ function validate469(data, { instancePath = "", parentData, parentDataProperty,
12660
13284
  vErrors === null ? vErrors = [err3] : vErrors.push(err3), errors++;
12661
13285
  }
12662
13286
  if (!(data1 === "relaxed" || data1 === "professional")) {
12663
- let err4 = { instancePath: instancePath + "/preset", schemaPath: "#/properties/preset/enum", keyword: "enum", params: { allowedValues: schema468.properties.preset.enum }, message: "must be equal to one of the allowed values" };
13287
+ let err4 = { instancePath: instancePath + "/preset", schemaPath: "#/properties/preset/enum", keyword: "enum", params: { allowedValues: schema473.properties.preset.enum }, message: "must be equal to one of the allowed values" };
12664
13288
  vErrors === null ? vErrors = [err4] : vErrors.push(err4), errors++;
12665
13289
  }
12666
13290
  }
@@ -12763,7 +13387,7 @@ function validate469(data, { instancePath = "", parentData, parentDataProperty,
12763
13387
  vErrors === null ? vErrors = [err22] : vErrors.push(err22), errors++;
12764
13388
  }
12765
13389
  if (!(data10 === "auto" || data10 === "always" || data10 === "never")) {
12766
- let err23 = { instancePath: instancePath + "/titlePage", schemaPath: "#/properties/titlePage/enum", keyword: "enum", params: { allowedValues: schema468.properties.titlePage.enum }, message: "must be equal to one of the allowed values" };
13390
+ let err23 = { instancePath: instancePath + "/titlePage", schemaPath: "#/properties/titlePage/enum", keyword: "enum", params: { allowedValues: schema473.properties.titlePage.enum }, message: "must be equal to one of the allowed values" };
12767
13391
  vErrors === null ? vErrors = [err23] : vErrors.push(err23), errors++;
12768
13392
  }
12769
13393
  }
@@ -12828,11 +13452,11 @@ function validate469(data, { instancePath = "", parentData, parentDataProperty,
12828
13452
  let err36 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
12829
13453
  vErrors === null ? vErrors = [err36] : vErrors.push(err36), errors++;
12830
13454
  }
12831
- return validate469.errors = vErrors, errors === 0;
13455
+ return validate473.errors = vErrors, errors === 0;
12832
13456
  }
12833
- validate469.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
12834
- function validate468(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
12835
- let vErrors = null, errors = 0, evaluated0 = validate468.evaluated;
13457
+ validate473.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
13458
+ function validate472(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
13459
+ let vErrors = null, errors = 0, evaluated0 = validate472.evaluated;
12836
13460
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
12837
13461
  for (let key0 in data)
12838
13462
  if (!(key0 === "width" || key0 === "height" || key0 === "orientation" || key0 === "margins" || key0 === "spatiumMm" || key0 === "pageTurns")) {
@@ -12870,7 +13494,7 @@ function validate468(data, { instancePath = "", parentData, parentDataProperty,
12870
13494
  vErrors === null ? vErrors = [err5] : vErrors.push(err5), errors++;
12871
13495
  }
12872
13496
  if (!(data2 === "portrait" || data2 === "landscape")) {
12873
- let err6 = { instancePath: instancePath + "/orientation", schemaPath: "#/properties/orientation/enum", keyword: "enum", params: { allowedValues: schema466.properties.orientation.enum }, message: "must be equal to one of the allowed values" };
13497
+ let err6 = { instancePath: instancePath + "/orientation", schemaPath: "#/properties/orientation/enum", keyword: "enum", params: { allowedValues: schema471.properties.orientation.enum }, message: "must be equal to one of the allowed values" };
12874
13498
  vErrors === null ? vErrors = [err6] : vErrors.push(err6), errors++;
12875
13499
  }
12876
13500
  }
@@ -12963,17 +13587,17 @@ function validate468(data, { instancePath = "", parentData, parentDataProperty,
12963
13587
  vErrors === null ? vErrors = [err22] : vErrors.push(err22), errors++;
12964
13588
  }
12965
13589
  }
12966
- data.pageTurns !== void 0 && (validate469(data.pageTurns, { instancePath: instancePath + "/pageTurns", parentData: data, parentDataProperty: "pageTurns", rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate469.errors : vErrors.concat(validate469.errors), errors = vErrors.length));
13590
+ data.pageTurns !== void 0 && (validate473(data.pageTurns, { instancePath: instancePath + "/pageTurns", parentData: data, parentDataProperty: "pageTurns", rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate473.errors : vErrors.concat(validate473.errors), errors = vErrors.length));
12967
13591
  } else {
12968
13592
  let err23 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
12969
13593
  vErrors === null ? vErrors = [err23] : vErrors.push(err23), errors++;
12970
13594
  }
12971
- return validate468.errors = vErrors, errors === 0;
13595
+ return validate472.errors = vErrors, errors === 0;
12972
13596
  }
12973
- validate468.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
12974
- var schema471 = { type: "string", enum: ["full", "short", "hidden"] };
12975
- function validate472(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
12976
- let vErrors = null, errors = 0, evaluated0 = validate472.evaluated;
13597
+ validate472.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
13598
+ var schema476 = { type: "string", enum: ["full", "short", "hidden"] };
13599
+ function validate476(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
13600
+ let vErrors = null, errors = 0, evaluated0 = validate476.evaluated;
12977
13601
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
12978
13602
  if (data.firstSystem === void 0) {
12979
13603
  let err0 = { instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: "firstSystem" }, message: "must have required property 'firstSystem'" };
@@ -12995,7 +13619,7 @@ function validate472(data, { instancePath = "", parentData, parentDataProperty,
12995
13619
  vErrors === null ? vErrors = [err3] : vErrors.push(err3), errors++;
12996
13620
  }
12997
13621
  if (!(data0 === "full" || data0 === "short" || data0 === "hidden")) {
12998
- let err4 = { instancePath: instancePath + "/firstSystem", schemaPath: "#/$defs/instrument-name-display-policy/enum", keyword: "enum", params: { allowedValues: schema471.enum }, message: "must be equal to one of the allowed values" };
13622
+ let err4 = { instancePath: instancePath + "/firstSystem", schemaPath: "#/$defs/instrument-name-display-policy/enum", keyword: "enum", params: { allowedValues: schema476.enum }, message: "must be equal to one of the allowed values" };
12999
13623
  vErrors === null ? vErrors = [err4] : vErrors.push(err4), errors++;
13000
13624
  }
13001
13625
  }
@@ -13006,7 +13630,7 @@ function validate472(data, { instancePath = "", parentData, parentDataProperty,
13006
13630
  vErrors === null ? vErrors = [err5] : vErrors.push(err5), errors++;
13007
13631
  }
13008
13632
  if (!(data1 === "full" || data1 === "short" || data1 === "hidden")) {
13009
- let err6 = { instancePath: instancePath + "/subsequentSystems", schemaPath: "#/$defs/instrument-name-display-policy/enum", keyword: "enum", params: { allowedValues: schema471.enum }, message: "must be equal to one of the allowed values" };
13633
+ let err6 = { instancePath: instancePath + "/subsequentSystems", schemaPath: "#/$defs/instrument-name-display-policy/enum", keyword: "enum", params: { allowedValues: schema476.enum }, message: "must be equal to one of the allowed values" };
13010
13634
  vErrors === null ? vErrors = [err6] : vErrors.push(err6), errors++;
13011
13635
  }
13012
13636
  }
@@ -13014,12 +13638,12 @@ function validate472(data, { instancePath = "", parentData, parentDataProperty,
13014
13638
  let err7 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
13015
13639
  vErrors === null ? vErrors = [err7] : vErrors.push(err7), errors++;
13016
13640
  }
13017
- return validate472.errors = vErrors, errors === 0;
13641
+ return validate476.errors = vErrors, errors === 0;
13018
13642
  }
13019
- validate472.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
13020
- var schema473 = { type: "object", required: ["id", "locator", "placement", "width", "content"], properties: { id: { type: "string", minLength: 1 }, locator: { $ref: "#/$defs/text-frame-locator" }, placement: { $ref: "#/$defs/text-frame-placement" }, width: { $ref: "#/$defs/text-frame-width" }, content: { $ref: "#/$defs/text-content" }, horizontalAlignment: { type: "string", enum: ["left", "center", "right"], description: "Horizontal alignment of the frame at its page anchor, independent of paragraph justification." }, paragraphJustification: { type: "string", enum: ["left", "center", "right", "justify"], description: "Paragraph line justification within the frame, independent of frame alignment." }, padding: { type: "number", minimum: 0, description: "Optional inset on all sides in staff spaces." }, border: { type: "string", enum: ["none", "solid"], description: "Optional frame border style." }, eraseBackground: { type: "boolean", description: "Erase underlying ink within the frame using the surface background. Omitted or false preserves underlying ink; no color is stored." }, sourceReference: { $ref: "#/$defs/text-frame-source-reference" }, staffAttachment: { $ref: "#/$defs/text-frame-staff-attachment" } }, additionalProperties: !1 };
13021
- function validate476(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
13022
- let vErrors = null, errors = 0, evaluated0 = validate476.evaluated;
13643
+ validate476.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
13644
+ var schema478 = { type: "object", required: ["id", "locator", "placement", "width", "content"], properties: { id: { type: "string", minLength: 1 }, locator: { $ref: "#/$defs/text-frame-locator" }, placement: { $ref: "#/$defs/text-frame-placement" }, width: { $ref: "#/$defs/text-frame-width" }, content: { $ref: "#/$defs/text-content" }, horizontalAlignment: { type: "string", enum: ["left", "center", "right"], description: "Horizontal alignment of the frame at its page anchor, independent of paragraph justification." }, paragraphJustification: { type: "string", enum: ["left", "center", "right", "justify"], description: "Paragraph line justification within the frame, independent of frame alignment." }, padding: { type: "number", minimum: 0, description: "Optional inset on all sides in staff spaces." }, border: { type: "string", enum: ["none", "solid"], description: "Optional frame border style." }, eraseBackground: { type: "boolean", description: "Erase underlying ink within the frame using the surface background. Omitted or false preserves underlying ink; no color is stored." }, sourceReference: { $ref: "#/$defs/text-frame-source-reference" }, staffAttachment: { $ref: "#/$defs/text-frame-staff-attachment" } }, additionalProperties: !1 };
13645
+ function validate480(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
13646
+ let vErrors = null, errors = 0, evaluated0 = validate480.evaluated;
13023
13647
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
13024
13648
  if (data.partId === void 0) {
13025
13649
  let err0 = { instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: "partId" }, message: "must have required property 'partId'" };
@@ -13122,7 +13746,7 @@ function validate476(data, { instancePath = "", parentData, parentDataProperty,
13122
13746
  vErrors === null ? vErrors = [err17] : vErrors.push(err17), errors++;
13123
13747
  }
13124
13748
  if (!(data6 === "below" || data6 === "above")) {
13125
- let err18 = { instancePath: instancePath + "/expression/placement", schemaPath: "#/$defs/expression-placement/enum", keyword: "enum", params: { allowedValues: schema391.enum }, message: "must be equal to one of the allowed values" };
13749
+ let err18 = { instancePath: instancePath + "/expression/placement", schemaPath: "#/$defs/expression-placement/enum", keyword: "enum", params: { allowedValues: schema394.enum }, message: "must be equal to one of the allowed values" };
13126
13750
  vErrors === null ? vErrors = [err18] : vErrors.push(err18), errors++;
13127
13751
  }
13128
13752
  }
@@ -13213,11 +13837,11 @@ function validate476(data, { instancePath = "", parentData, parentDataProperty,
13213
13837
  let err35 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
13214
13838
  vErrors === null ? vErrors = [err35] : vErrors.push(err35), errors++;
13215
13839
  }
13216
- return validate476.errors = vErrors, errors === 0;
13840
+ return validate480.errors = vErrors, errors === 0;
13217
13841
  }
13218
- validate476.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
13219
- function validate474(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
13220
- let vErrors = null, errors = 0, evaluated0 = validate474.evaluated;
13842
+ validate480.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
13843
+ function validate478(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
13844
+ let vErrors = null, errors = 0, evaluated0 = validate478.evaluated;
13221
13845
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
13222
13846
  if (data.id === void 0) {
13223
13847
  let err0 = { instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: "id" }, message: "must have required property 'id'" };
@@ -13240,7 +13864,7 @@ function validate474(data, { instancePath = "", parentData, parentDataProperty,
13240
13864
  vErrors === null ? vErrors = [err4] : vErrors.push(err4), errors++;
13241
13865
  }
13242
13866
  for (let key0 in data)
13243
- if (!func1.call(schema473.properties, key0)) {
13867
+ if (!func1.call(schema478.properties, key0)) {
13244
13868
  let err5 = { instancePath, schemaPath: "#/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: key0 }, message: "must NOT have additional properties" };
13245
13869
  vErrors === null ? vErrors = [err5] : vErrors.push(err5), errors++;
13246
13870
  }
@@ -13420,7 +14044,7 @@ function validate474(data, { instancePath = "", parentData, parentDataProperty,
13420
14044
  vErrors === null ? vErrors = [err36] : vErrors.push(err36), errors++;
13421
14045
  }
13422
14046
  if (!(data10 === "top" || data10 === "right" || data10 === "bottom" || data10 === "left" || data10 === "top-left" || data10 === "top-right" || data10 === "bottom-right" || data10 === "bottom-left")) {
13423
- let err37 = { instancePath: instancePath + "/placement/anchor", schemaPath: "#/$defs/text-frame-placement/properties/anchor/enum", keyword: "enum", params: { allowedValues: schema422.properties.anchor.enum }, message: "must be equal to one of the allowed values" };
14047
+ let err37 = { instancePath: instancePath + "/placement/anchor", schemaPath: "#/$defs/text-frame-placement/properties/anchor/enum", keyword: "enum", params: { allowedValues: schema427.properties.anchor.enum }, message: "must be equal to one of the allowed values" };
13424
14048
  vErrors === null ? vErrors = [err37] : vErrors.push(err37), errors++;
13425
14049
  }
13426
14050
  }
@@ -13553,7 +14177,7 @@ function validate474(data, { instancePath = "", parentData, parentDataProperty,
13553
14177
  vErrors === null ? vErrors = [err61] : vErrors.push(err61), errors++;
13554
14178
  }
13555
14179
  if (!(data20 === "left" || data20 === "center" || data20 === "right")) {
13556
- let err62 = { instancePath: instancePath + "/horizontalAlignment", schemaPath: "#/properties/horizontalAlignment/enum", keyword: "enum", params: { allowedValues: schema473.properties.horizontalAlignment.enum }, message: "must be equal to one of the allowed values" };
14180
+ let err62 = { instancePath: instancePath + "/horizontalAlignment", schemaPath: "#/properties/horizontalAlignment/enum", keyword: "enum", params: { allowedValues: schema478.properties.horizontalAlignment.enum }, message: "must be equal to one of the allowed values" };
13557
14181
  vErrors === null ? vErrors = [err62] : vErrors.push(err62), errors++;
13558
14182
  }
13559
14183
  }
@@ -13564,7 +14188,7 @@ function validate474(data, { instancePath = "", parentData, parentDataProperty,
13564
14188
  vErrors === null ? vErrors = [err63] : vErrors.push(err63), errors++;
13565
14189
  }
13566
14190
  if (!(data21 === "left" || data21 === "center" || data21 === "right" || data21 === "justify")) {
13567
- let err64 = { instancePath: instancePath + "/paragraphJustification", schemaPath: "#/properties/paragraphJustification/enum", keyword: "enum", params: { allowedValues: schema473.properties.paragraphJustification.enum }, message: "must be equal to one of the allowed values" };
14191
+ let err64 = { instancePath: instancePath + "/paragraphJustification", schemaPath: "#/properties/paragraphJustification/enum", keyword: "enum", params: { allowedValues: schema478.properties.paragraphJustification.enum }, message: "must be equal to one of the allowed values" };
13568
14192
  vErrors === null ? vErrors = [err64] : vErrors.push(err64), errors++;
13569
14193
  }
13570
14194
  }
@@ -13587,7 +14211,7 @@ function validate474(data, { instancePath = "", parentData, parentDataProperty,
13587
14211
  vErrors === null ? vErrors = [err67] : vErrors.push(err67), errors++;
13588
14212
  }
13589
14213
  if (!(data23 === "none" || data23 === "solid")) {
13590
- let err68 = { instancePath: instancePath + "/border", schemaPath: "#/properties/border/enum", keyword: "enum", params: { allowedValues: schema473.properties.border.enum }, message: "must be equal to one of the allowed values" };
14214
+ let err68 = { instancePath: instancePath + "/border", schemaPath: "#/properties/border/enum", keyword: "enum", params: { allowedValues: schema478.properties.border.enum }, message: "must be equal to one of the allowed values" };
13591
14215
  vErrors === null ? vErrors = [err68] : vErrors.push(err68), errors++;
13592
14216
  }
13593
14217
  }
@@ -13636,28 +14260,28 @@ function validate474(data, { instancePath = "", parentData, parentDataProperty,
13636
14260
  vErrors === null ? vErrors = [err76] : vErrors.push(err76), errors++;
13637
14261
  }
13638
14262
  }
13639
- data.staffAttachment !== void 0 && (validate476(data.staffAttachment, { instancePath: instancePath + "/staffAttachment", parentData: data, parentDataProperty: "staffAttachment", rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate476.errors : vErrors.concat(validate476.errors), errors = vErrors.length));
14263
+ data.staffAttachment !== void 0 && (validate480(data.staffAttachment, { instancePath: instancePath + "/staffAttachment", parentData: data, parentDataProperty: "staffAttachment", rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate480.errors : vErrors.concat(validate480.errors), errors = vErrors.length));
13640
14264
  } else {
13641
14265
  let err77 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
13642
14266
  vErrors === null ? vErrors = [err77] : vErrors.push(err77), errors++;
13643
14267
  }
13644
- return validate474.errors = vErrors, errors === 0;
14268
+ return validate478.errors = vErrors, errors === 0;
13645
14269
  }
13646
- validate474.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
13647
- function validate467(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
13648
- let vErrors = null, errors = 0, evaluated0 = validate467.evaluated;
14270
+ validate478.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
14271
+ function validate471(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
14272
+ let vErrors = null, errors = 0, evaluated0 = validate471.evaluated;
13649
14273
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
13650
14274
  for (let key0 in data)
13651
14275
  if (!(key0 === "pageSetup" || key0 === "instrumentNameDisplay" || key0 === "textFrames" || key0 === "layoutBreaks")) {
13652
14276
  let err0 = { instancePath, schemaPath: "#/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: key0 }, message: "must NOT have additional properties" };
13653
14277
  vErrors === null ? vErrors = [err0] : vErrors.push(err0), errors++;
13654
14278
  }
13655
- if (data.pageSetup !== void 0 && (validate468(data.pageSetup, { instancePath: instancePath + "/pageSetup", parentData: data, parentDataProperty: "pageSetup", rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate468.errors : vErrors.concat(validate468.errors), errors = vErrors.length)), data.instrumentNameDisplay !== void 0 && (validate472(data.instrumentNameDisplay, { instancePath: instancePath + "/instrumentNameDisplay", parentData: data, parentDataProperty: "instrumentNameDisplay", rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate472.errors : vErrors.concat(validate472.errors), errors = vErrors.length)), data.textFrames !== void 0) {
14279
+ if (data.pageSetup !== void 0 && (validate472(data.pageSetup, { instancePath: instancePath + "/pageSetup", parentData: data, parentDataProperty: "pageSetup", rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate472.errors : vErrors.concat(validate472.errors), errors = vErrors.length)), data.instrumentNameDisplay !== void 0 && (validate476(data.instrumentNameDisplay, { instancePath: instancePath + "/instrumentNameDisplay", parentData: data, parentDataProperty: "instrumentNameDisplay", rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate476.errors : vErrors.concat(validate476.errors), errors = vErrors.length)), data.textFrames !== void 0) {
13656
14280
  let data2 = data.textFrames;
13657
14281
  if (Array.isArray(data2)) {
13658
14282
  let len0 = data2.length;
13659
14283
  for (let i0 = 0; i0 < len0; i0++)
13660
- validate474(data2[i0], { instancePath: instancePath + "/textFrames/" + i0, parentData: data2, parentDataProperty: i0, rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate474.errors : vErrors.concat(validate474.errors), errors = vErrors.length);
14284
+ validate478(data2[i0], { instancePath: instancePath + "/textFrames/" + i0, parentData: data2, parentDataProperty: i0, rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate478.errors : vErrors.concat(validate478.errors), errors = vErrors.length);
13661
14285
  } else {
13662
14286
  let err1 = { instancePath: instancePath + "/textFrames", schemaPath: "#/properties/textFrames/type", keyword: "type", params: { type: "array" }, message: "must be array" };
13663
14287
  vErrors === null ? vErrors = [err1] : vErrors.push(err1), errors++;
@@ -13702,7 +14326,7 @@ function validate467(data, { instancePath = "", parentData, parentDataProperty,
13702
14326
  vErrors === null ? vErrors = [err7] : vErrors.push(err7), errors++;
13703
14327
  }
13704
14328
  if (!(data7 === "system" || data7 === "page")) {
13705
- let err8 = { instancePath: instancePath + "/layoutBreaks/" + i1 + "/kind", schemaPath: "#/$defs/layout-break/properties/kind/enum", keyword: "enum", params: { allowedValues: schema482.properties.kind.enum }, message: "must be equal to one of the allowed values" };
14329
+ let err8 = { instancePath: instancePath + "/layoutBreaks/" + i1 + "/kind", schemaPath: "#/$defs/layout-break/properties/kind/enum", keyword: "enum", params: { allowedValues: schema487.properties.kind.enum }, message: "must be equal to one of the allowed values" };
13706
14330
  vErrors === null ? vErrors = [err8] : vErrors.push(err8), errors++;
13707
14331
  }
13708
14332
  }
@@ -13720,12 +14344,12 @@ function validate467(data, { instancePath = "", parentData, parentDataProperty,
13720
14344
  let err11 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
13721
14345
  vErrors === null ? vErrors = [err11] : vErrors.push(err11), errors++;
13722
14346
  }
13723
- return validate467.errors = vErrors, errors === 0;
14347
+ return validate471.errors = vErrors, errors === 0;
13724
14348
  }
13725
- validate467.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
13726
- var textFrame = validate479;
13727
- function validate479(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
13728
- let vErrors = null, errors = 0, evaluated0 = validate479.evaluated;
14349
+ validate471.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
14350
+ var textFrame = validate483;
14351
+ function validate483(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
14352
+ let vErrors = null, errors = 0, evaluated0 = validate483.evaluated;
13729
14353
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
13730
14354
  if (data.id === void 0) {
13731
14355
  let err0 = { instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: "id" }, message: "must have required property 'id'" };
@@ -13748,7 +14372,7 @@ function validate479(data, { instancePath = "", parentData, parentDataProperty,
13748
14372
  vErrors === null ? vErrors = [err4] : vErrors.push(err4), errors++;
13749
14373
  }
13750
14374
  for (let key0 in data)
13751
- if (!func1.call(schema473.properties, key0)) {
14375
+ if (!func1.call(schema478.properties, key0)) {
13752
14376
  let err5 = { instancePath, schemaPath: "#/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: key0 }, message: "must NOT have additional properties" };
13753
14377
  vErrors === null ? vErrors = [err5] : vErrors.push(err5), errors++;
13754
14378
  }
@@ -13928,7 +14552,7 @@ function validate479(data, { instancePath = "", parentData, parentDataProperty,
13928
14552
  vErrors === null ? vErrors = [err36] : vErrors.push(err36), errors++;
13929
14553
  }
13930
14554
  if (!(data10 === "top" || data10 === "right" || data10 === "bottom" || data10 === "left" || data10 === "top-left" || data10 === "top-right" || data10 === "bottom-right" || data10 === "bottom-left")) {
13931
- let err37 = { instancePath: instancePath + "/placement/anchor", schemaPath: "#/$defs/text-frame-placement/properties/anchor/enum", keyword: "enum", params: { allowedValues: schema422.properties.anchor.enum }, message: "must be equal to one of the allowed values" };
14555
+ let err37 = { instancePath: instancePath + "/placement/anchor", schemaPath: "#/$defs/text-frame-placement/properties/anchor/enum", keyword: "enum", params: { allowedValues: schema427.properties.anchor.enum }, message: "must be equal to one of the allowed values" };
13932
14556
  vErrors === null ? vErrors = [err37] : vErrors.push(err37), errors++;
13933
14557
  }
13934
14558
  }
@@ -14061,7 +14685,7 @@ function validate479(data, { instancePath = "", parentData, parentDataProperty,
14061
14685
  vErrors === null ? vErrors = [err61] : vErrors.push(err61), errors++;
14062
14686
  }
14063
14687
  if (!(data20 === "left" || data20 === "center" || data20 === "right")) {
14064
- let err62 = { instancePath: instancePath + "/horizontalAlignment", schemaPath: "#/properties/horizontalAlignment/enum", keyword: "enum", params: { allowedValues: schema473.properties.horizontalAlignment.enum }, message: "must be equal to one of the allowed values" };
14688
+ let err62 = { instancePath: instancePath + "/horizontalAlignment", schemaPath: "#/properties/horizontalAlignment/enum", keyword: "enum", params: { allowedValues: schema478.properties.horizontalAlignment.enum }, message: "must be equal to one of the allowed values" };
14065
14689
  vErrors === null ? vErrors = [err62] : vErrors.push(err62), errors++;
14066
14690
  }
14067
14691
  }
@@ -14072,7 +14696,7 @@ function validate479(data, { instancePath = "", parentData, parentDataProperty,
14072
14696
  vErrors === null ? vErrors = [err63] : vErrors.push(err63), errors++;
14073
14697
  }
14074
14698
  if (!(data21 === "left" || data21 === "center" || data21 === "right" || data21 === "justify")) {
14075
- let err64 = { instancePath: instancePath + "/paragraphJustification", schemaPath: "#/properties/paragraphJustification/enum", keyword: "enum", params: { allowedValues: schema473.properties.paragraphJustification.enum }, message: "must be equal to one of the allowed values" };
14699
+ let err64 = { instancePath: instancePath + "/paragraphJustification", schemaPath: "#/properties/paragraphJustification/enum", keyword: "enum", params: { allowedValues: schema478.properties.paragraphJustification.enum }, message: "must be equal to one of the allowed values" };
14076
14700
  vErrors === null ? vErrors = [err64] : vErrors.push(err64), errors++;
14077
14701
  }
14078
14702
  }
@@ -14095,7 +14719,7 @@ function validate479(data, { instancePath = "", parentData, parentDataProperty,
14095
14719
  vErrors === null ? vErrors = [err67] : vErrors.push(err67), errors++;
14096
14720
  }
14097
14721
  if (!(data23 === "none" || data23 === "solid")) {
14098
- let err68 = { instancePath: instancePath + "/border", schemaPath: "#/properties/border/enum", keyword: "enum", params: { allowedValues: schema473.properties.border.enum }, message: "must be equal to one of the allowed values" };
14722
+ let err68 = { instancePath: instancePath + "/border", schemaPath: "#/properties/border/enum", keyword: "enum", params: { allowedValues: schema478.properties.border.enum }, message: "must be equal to one of the allowed values" };
14099
14723
  vErrors === null ? vErrors = [err68] : vErrors.push(err68), errors++;
14100
14724
  }
14101
14725
  }
@@ -14144,17 +14768,17 @@ function validate479(data, { instancePath = "", parentData, parentDataProperty,
14144
14768
  vErrors === null ? vErrors = [err76] : vErrors.push(err76), errors++;
14145
14769
  }
14146
14770
  }
14147
- data.staffAttachment !== void 0 && (validate476(data.staffAttachment, { instancePath: instancePath + "/staffAttachment", parentData: data, parentDataProperty: "staffAttachment", rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate476.errors : vErrors.concat(validate476.errors), errors = vErrors.length));
14771
+ data.staffAttachment !== void 0 && (validate480(data.staffAttachment, { instancePath: instancePath + "/staffAttachment", parentData: data, parentDataProperty: "staffAttachment", rootData, dynamicAnchors }) || (vErrors = vErrors === null ? validate480.errors : vErrors.concat(validate480.errors), errors = vErrors.length));
14148
14772
  } else {
14149
14773
  let err77 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
14150
14774
  vErrors === null ? vErrors = [err77] : vErrors.push(err77), errors++;
14151
14775
  }
14152
- return validate479.errors = vErrors, errors === 0;
14776
+ return validate483.errors = vErrors, errors === 0;
14153
14777
  }
14154
- validate479.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
14155
- var systemText = validate482;
14156
- function validate482(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
14157
- let vErrors = null, errors = 0, evaluated0 = validate482.evaluated;
14778
+ validate483.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
14779
+ var systemText = validate486;
14780
+ function validate486(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
14781
+ let vErrors = null, errors = 0, evaluated0 = validate486.evaluated;
14158
14782
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
14159
14783
  if (data.id === void 0) {
14160
14784
  let err0 = { instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: "id" }, message: "must have required property 'id'" };
@@ -14237,7 +14861,7 @@ function validate482(data, { instancePath = "", parentData, parentDataProperty,
14237
14861
  vErrors === null ? vErrors = [err14] : vErrors.push(err14), errors++;
14238
14862
  }
14239
14863
  if (!(data6 === "left" || data6 === "center" || data6 === "right")) {
14240
- let err15 = { instancePath: instancePath + "/frame/horizontalAlignment", schemaPath: "#/$defs/staff-text-frame-presentation/properties/horizontalAlignment/enum", keyword: "enum", params: { allowedValues: schema389.properties.horizontalAlignment.enum }, message: "must be equal to one of the allowed values" };
14864
+ let err15 = { instancePath: instancePath + "/frame/horizontalAlignment", schemaPath: "#/$defs/staff-text-frame-presentation/properties/horizontalAlignment/enum", keyword: "enum", params: { allowedValues: schema392.properties.horizontalAlignment.enum }, message: "must be equal to one of the allowed values" };
14241
14865
  vErrors === null ? vErrors = [err15] : vErrors.push(err15), errors++;
14242
14866
  }
14243
14867
  }
@@ -14248,7 +14872,7 @@ function validate482(data, { instancePath = "", parentData, parentDataProperty,
14248
14872
  vErrors === null ? vErrors = [err16] : vErrors.push(err16), errors++;
14249
14873
  }
14250
14874
  if (!(data7 === "left" || data7 === "center" || data7 === "right" || data7 === "justify")) {
14251
- let err17 = { instancePath: instancePath + "/frame/paragraphJustification", schemaPath: "#/$defs/staff-text-frame-presentation/properties/paragraphJustification/enum", keyword: "enum", params: { allowedValues: schema389.properties.paragraphJustification.enum }, message: "must be equal to one of the allowed values" };
14875
+ let err17 = { instancePath: instancePath + "/frame/paragraphJustification", schemaPath: "#/$defs/staff-text-frame-presentation/properties/paragraphJustification/enum", keyword: "enum", params: { allowedValues: schema392.properties.paragraphJustification.enum }, message: "must be equal to one of the allowed values" };
14252
14876
  vErrors === null ? vErrors = [err17] : vErrors.push(err17), errors++;
14253
14877
  }
14254
14878
  }
@@ -14271,7 +14895,7 @@ function validate482(data, { instancePath = "", parentData, parentDataProperty,
14271
14895
  vErrors === null ? vErrors = [err20] : vErrors.push(err20), errors++;
14272
14896
  }
14273
14897
  if (!(data9 === "none" || data9 === "solid")) {
14274
- let err21 = { instancePath: instancePath + "/frame/border", schemaPath: "#/$defs/staff-text-frame-presentation/properties/border/enum", keyword: "enum", params: { allowedValues: schema389.properties.border.enum }, message: "must be equal to one of the allowed values" };
14898
+ let err21 = { instancePath: instancePath + "/frame/border", schemaPath: "#/$defs/staff-text-frame-presentation/properties/border/enum", keyword: "enum", params: { allowedValues: schema392.properties.border.enum }, message: "must be equal to one of the allowed values" };
14275
14899
  vErrors === null ? vErrors = [err21] : vErrors.push(err21), errors++;
14276
14900
  }
14277
14901
  }
@@ -14360,7 +14984,7 @@ function validate482(data, { instancePath = "", parentData, parentDataProperty,
14360
14984
  vErrors === null ? vErrors = [err35] : vErrors.push(err35), errors++;
14361
14985
  }
14362
14986
  if (!(data17 === "below" || data17 === "above")) {
14363
- let err36 = { instancePath: instancePath + "/placement", schemaPath: "#/$defs/expression-placement/enum", keyword: "enum", params: { allowedValues: schema391.enum }, message: "must be equal to one of the allowed values" };
14987
+ let err36 = { instancePath: instancePath + "/placement", schemaPath: "#/$defs/expression-placement/enum", keyword: "enum", params: { allowedValues: schema394.enum }, message: "must be equal to one of the allowed values" };
14364
14988
  vErrors === null ? vErrors = [err36] : vErrors.push(err36), errors++;
14365
14989
  }
14366
14990
  }
@@ -14394,12 +15018,12 @@ function validate482(data, { instancePath = "", parentData, parentDataProperty,
14394
15018
  let err42 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
14395
15019
  vErrors === null ? vErrors = [err42] : vErrors.push(err42), errors++;
14396
15020
  }
14397
- return validate482.errors = vErrors, errors === 0;
15021
+ return validate486.errors = vErrors, errors === 0;
14398
15022
  }
14399
- validate482.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
14400
- var staffTextFramePresentation = validate484;
14401
- function validate484(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
14402
- let vErrors = null, errors = 0, evaluated0 = validate484.evaluated;
15023
+ validate486.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
15024
+ var staffTextFramePresentation = validate488;
15025
+ function validate488(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
15026
+ let vErrors = null, errors = 0, evaluated0 = validate488.evaluated;
14403
15027
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
14404
15028
  for (let key0 in data)
14405
15029
  if (!(key0 === "width" || key0 === "horizontalAlignment" || key0 === "paragraphJustification" || key0 === "padding" || key0 === "border" || key0 === "eraseBackground")) {
@@ -14450,7 +15074,7 @@ function validate484(data, { instancePath = "", parentData, parentDataProperty,
14450
15074
  vErrors === null ? vErrors = [err8] : vErrors.push(err8), errors++;
14451
15075
  }
14452
15076
  if (!(data3 === "left" || data3 === "center" || data3 === "right")) {
14453
- let err9 = { instancePath: instancePath + "/horizontalAlignment", schemaPath: "#/properties/horizontalAlignment/enum", keyword: "enum", params: { allowedValues: schema389.properties.horizontalAlignment.enum }, message: "must be equal to one of the allowed values" };
15077
+ let err9 = { instancePath: instancePath + "/horizontalAlignment", schemaPath: "#/properties/horizontalAlignment/enum", keyword: "enum", params: { allowedValues: schema392.properties.horizontalAlignment.enum }, message: "must be equal to one of the allowed values" };
14454
15078
  vErrors === null ? vErrors = [err9] : vErrors.push(err9), errors++;
14455
15079
  }
14456
15080
  }
@@ -14461,7 +15085,7 @@ function validate484(data, { instancePath = "", parentData, parentDataProperty,
14461
15085
  vErrors === null ? vErrors = [err10] : vErrors.push(err10), errors++;
14462
15086
  }
14463
15087
  if (!(data4 === "left" || data4 === "center" || data4 === "right" || data4 === "justify")) {
14464
- let err11 = { instancePath: instancePath + "/paragraphJustification", schemaPath: "#/properties/paragraphJustification/enum", keyword: "enum", params: { allowedValues: schema389.properties.paragraphJustification.enum }, message: "must be equal to one of the allowed values" };
15088
+ let err11 = { instancePath: instancePath + "/paragraphJustification", schemaPath: "#/properties/paragraphJustification/enum", keyword: "enum", params: { allowedValues: schema392.properties.paragraphJustification.enum }, message: "must be equal to one of the allowed values" };
14465
15089
  vErrors === null ? vErrors = [err11] : vErrors.push(err11), errors++;
14466
15090
  }
14467
15091
  }
@@ -14484,7 +15108,7 @@ function validate484(data, { instancePath = "", parentData, parentDataProperty,
14484
15108
  vErrors === null ? vErrors = [err14] : vErrors.push(err14), errors++;
14485
15109
  }
14486
15110
  if (!(data6 === "none" || data6 === "solid")) {
14487
- let err15 = { instancePath: instancePath + "/border", schemaPath: "#/properties/border/enum", keyword: "enum", params: { allowedValues: schema389.properties.border.enum }, message: "must be equal to one of the allowed values" };
15111
+ let err15 = { instancePath: instancePath + "/border", schemaPath: "#/properties/border/enum", keyword: "enum", params: { allowedValues: schema392.properties.border.enum }, message: "must be equal to one of the allowed values" };
14488
15112
  vErrors === null ? vErrors = [err15] : vErrors.push(err15), errors++;
14489
15113
  }
14490
15114
  }
@@ -14496,12 +15120,12 @@ function validate484(data, { instancePath = "", parentData, parentDataProperty,
14496
15120
  let err17 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
14497
15121
  vErrors === null ? vErrors = [err17] : vErrors.push(err17), errors++;
14498
15122
  }
14499
- return validate484.errors = vErrors, errors === 0;
15123
+ return validate488.errors = vErrors, errors === 0;
14500
15124
  }
14501
- validate484.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
14502
- var textFramePagePosition = validate485;
14503
- function validate485(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
14504
- let vErrors = null, errors = 0, evaluated0 = validate485.evaluated;
15125
+ validate488.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
15126
+ var textFramePagePosition = validate489;
15127
+ function validate489(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
15128
+ let vErrors = null, errors = 0, evaluated0 = validate489.evaluated;
14505
15129
  if (evaluated0.dynamicProps && (evaluated0.props = void 0), evaluated0.dynamicItems && (evaluated0.items = void 0), data && typeof data == "object" && !Array.isArray(data)) {
14506
15130
  if (data.id === void 0) {
14507
15131
  let err0 = { instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: "id" }, message: "must have required property 'id'" };
@@ -14711,7 +15335,7 @@ function validate485(data, { instancePath = "", parentData, parentDataProperty,
14711
15335
  vErrors === null ? vErrors = [err37] : vErrors.push(err37), errors++;
14712
15336
  }
14713
15337
  if (!(data11 === "top" || data11 === "right" || data11 === "bottom" || data11 === "left" || data11 === "top-left" || data11 === "top-right" || data11 === "bottom-right" || data11 === "bottom-left")) {
14714
- let err38 = { instancePath: instancePath + "/placement/anchor", schemaPath: "#/$defs/text-frame-placement/properties/anchor/enum", keyword: "enum", params: { allowedValues: schema422.properties.anchor.enum }, message: "must be equal to one of the allowed values" };
15338
+ let err38 = { instancePath: instancePath + "/placement/anchor", schemaPath: "#/$defs/text-frame-placement/properties/anchor/enum", keyword: "enum", params: { allowedValues: schema427.properties.anchor.enum }, message: "must be equal to one of the allowed values" };
14715
15339
  vErrors === null ? vErrors = [err38] : vErrors.push(err38), errors++;
14716
15340
  }
14717
15341
  }
@@ -14882,9 +15506,9 @@ function validate485(data, { instancePath = "", parentData, parentDataProperty,
14882
15506
  let err69 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
14883
15507
  vErrors === null ? vErrors = [err69] : vErrors.push(err69), errors++;
14884
15508
  }
14885
- return validate485.errors = vErrors, errors === 0;
15509
+ return validate489.errors = vErrors, errors === 0;
14886
15510
  }
14887
- validate485.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
15511
+ validate489.evaluated = { props: !0, dynamicProps: !1, dynamicItems: !1 };
14888
15512
 
14889
15513
  // packages/format/src/mnx/staffTextFrame.ts
14890
15514
  function parseTextFramePagePosition(raw) {
@@ -14961,7 +15585,7 @@ function parseGlobalMeasure(raw) {
14961
15585
  raw.id && (measure.id = raw.id), raw.number !== void 0 && (measure.number = raw.number), raw.time && (measure.time = parseTimeSignature(raw.time)), raw.key && (measure.key = parseKeySignature(raw.key)), raw.barline && (measure.barline = parseBarline(raw.barline)), raw.repeatStart !== void 0 && (measure.repeatStart = parseRepeatStart(raw.repeatStart)), raw.repeatEnd !== void 0 && (measure.repeatEnd = parseRepeatEnd(raw.repeatEnd)), raw.ending !== void 0 && (measure.ending = parseEnding(raw.ending)), raw.tempos && (measure.tempos = raw.tempos.map(parseTempo)), raw.segno && (measure.segno = parseSegno(raw.segno)), raw.fine && (measure.fine = parseFine(raw.fine)), raw.coda && (measure.coda = parseCoda(raw.coda)), raw.jump && (measure.jump = parseJump(raw.jump));
14962
15586
  let viritura = raw._x?.viritura;
14963
15587
  if (viritura) {
14964
- if (viritura.senzaMisura && measure.time && (measure.time.display = "senzaMisura"), viritura.rehearsalMark) {
15588
+ if (viritura.tempos !== void 0 && (measure.tempos = parseVendorTempos(raw, viritura)), viritura.senzaMisura && measure.time && (measure.time.display = "senzaMisura"), viritura.rehearsalMark) {
14965
15589
  let rm = viritura.rehearsalMark;
14966
15590
  measure.rehearsalMark = { text: parseTextContent(rm.text) ?? [] }, rm.style && (measure.rehearsalMark.style = rm.style), applyManualPlacement(measure.rehearsalMark, rm);
14967
15591
  }
@@ -14969,6 +15593,27 @@ function parseGlobalMeasure(raw) {
14969
15593
  }
14970
15594
  return measure;
14971
15595
  }
15596
+ function parseVendorTempos(raw, viritura) {
15597
+ if (raw.tempos?.length) throw new Error("Viritura tempos cannot coexist with standard measure tempos.");
15598
+ if (!measureGlobalExtensions(viritura)) throw new Error("Invalid Viritura tempo instructions.");
15599
+ if (!viritura.tempos) throw new Error("Viritura tempo instructions are missing.");
15600
+ return viritura.tempos.map((instruction) => {
15601
+ let presentation = {
15602
+ text: instruction.text,
15603
+ showText: instruction.showText,
15604
+ showMetronomeMark: instruction.showMetronomeMark
15605
+ };
15606
+ if (instruction.location && (presentation.location = parseRhythmicPosition(instruction.location)), applyManualPlacement(presentation, instruction), instruction.bpm !== void 0 && instruction.value !== void 0)
15607
+ return {
15608
+ ...presentation,
15609
+ bpm: instruction.bpm,
15610
+ value: parseTempoNoteValue(instruction.value),
15611
+ swing: instruction.swing === void 0 ? void 0 : parseSwing(instruction.swing)
15612
+ };
15613
+ if (!instruction.swing) throw new Error("A BPM-free tempo requires an explicit swing instruction.");
15614
+ return { ...presentation, swing: parseSwing(instruction.swing) };
15615
+ });
15616
+ }
14972
15617
  function parseRepeatStart(raw) {
14973
15618
  let r = {}, times = raw.times;
14974
15619
  return typeof times == "number" && (r.times = times), r;
@@ -15004,11 +15649,18 @@ function parseTempo(raw) {
15004
15649
  raw.location && (tempo.location = parseRhythmicPosition(raw.location));
15005
15650
  let viritura = raw._x?.viritura;
15006
15651
  if (viritura) {
15652
+ if (viritura.swing !== void 0) {
15653
+ if (!swing(viritura.swing)) throw new Error("Invalid Viritura tempo swing instruction.");
15654
+ tempo.swing = parseSwing(viritura.swing);
15655
+ }
15007
15656
  let text = parseTextContent(viritura.text);
15008
15657
  text !== void 0 && (tempo.text = text), typeof viritura.showMetronomeMark == "boolean" && (tempo.showMetronomeMark = viritura.showMetronomeMark), typeof viritura.showText == "boolean" && (tempo.showText = viritura.showText), applyManualPlacement(tempo, viritura);
15009
15658
  }
15010
15659
  return tempo;
15011
15660
  }
15661
+ function parseSwing(raw) {
15662
+ return raw.mode === "straight" ? { mode: "straight" } : { mode: "swing", subdivision: raw.subdivision, ratio: [raw.ratio[0], raw.ratio[1]] };
15663
+ }
15012
15664
  function parseTempoNoteValue(raw) {
15013
15665
  let tnv = {
15014
15666
  base: raw.base
@@ -16430,6 +17082,7 @@ function buildTempoMap(globalMeasures, holds) {
16430
17082
  let measureStartSpq = currentSpq, changes = [];
16431
17083
  if (gm.tempos && gm.tempos.length > 0) {
16432
17084
  for (let tempo of gm.tempos) {
17085
+ if (tempo.bpm === void 0) continue;
16433
17086
  let beatOffset = tempo.location ? tempo.location.fraction[0] / tempo.location.fraction[1] * mBeats : 0, qpm = effectiveQpm(tempo.bpm, tempo.value.base, tempo.value.dots);
16434
17087
  changes.push({ beatOffset, qpm });
16435
17088
  }
@@ -16465,6 +17118,7 @@ function buildTempoModel(globalMeasures, holds) {
16465
17118
  if (measureStartBeats.push(cumBeats), gm.tempos && gm.tempos.length > 0) {
16466
17119
  let sorted = [...gm.tempos].sort((a, b) => tempoBeat(a, mBeats) - tempoBeat(b, mBeats));
16467
17120
  for (let tempo of sorted) {
17121
+ if (tempo.bpm === void 0) continue;
16468
17122
  let startBeat = cumBeats + tempoBeat(tempo, mBeats), qpm = effectiveQpm(tempo.bpm, tempo.value.base, tempo.value.dots);
16469
17123
  regions.push({ startBeat, endBeat: 1 / 0, startBpm: qpm, endBpm: qpm });
16470
17124
  }