Skip to content

GuitarPrometheus::Project::ProjectSchema

GuitarPrometheus::Project::ProjectSchema

Compiled-in copy of the Project v4 JSON Schema. More…

#include <ProjectSchema.h>

Public Functions

Name
std::string_viewgetV4SchemaJson()

Detailed Description

class GuitarPrometheus::Project::ProjectSchema;

Compiled-in copy of the Project v4 JSON Schema.

Mirrors the on-disk file at resources/schema/project-v4.schema.json byte-for-byte (asserted by ProjectSchemaTests). The library uses the embedded copy at runtime so a stripped binary doesn’t need the resource file alongside it.

Schema timeline:

  • v1: pre-F9.6 shape; tempoOverrides was an object keyed by measure number.
  • v2 (F9.6): tempoOverrides lifted to an array of (measure, tick, bpm) objects so a single measure can carry multiple sub-beat overrides. The v1 -> v2 migration transposes legacy entries with tick: 0.
  • v3 (F10.2): added profileOverrides, an object keyed by score-part-id whose values are ProfileFormState JSON shapes. Empty for new projects; v2 -> v3 migration adds an empty map.
  • v4 (F11.6): added mergedSources, an array of {filename, encoding, data} objects capturing merged-in MusicXML payloads. Empty for new projects; v3 -> v4 migration adds an empty array.

Public Functions Documentation

function getV4SchemaJson

static std::string_view getV4SchemaJson()

Updated on 2026-05-29 at 07:39:52 +0000