public dynamic ToJson()
{
dynamic json = Std.NewObject();
json.scale = Scale;
json.width = Width;
json.height = Height;
json.engine = Engine;
json.stretchForce = StretchForce;
json.forcePianoFingering = ForcePianoFingering;
json.atRoot = ScriptFile;
json.layout = Std.NewObject();
json.layout.mode = Layout.Mode;
json.layout.additionalSettings = Std.NewObject();
foreach (string setting in Layout.AdditionalSettings)
{
json.layout.additionalSettings[setting] = Layout.AdditionalSettings[setting];
}
FastList<dynamic> staves = new FastList<dynamic>();
json.staves = staves;
foreach (var staff in Staves)
{
var s = Std.NewObject();
s.id = staff.Id;
s.additionalSettings = Std.NewObject();
foreach (var additionalSetting in staff.AdditionalSettings)
{
s.additionalSettings[additionalSetting] = staff.AdditionalSettings[additionalSetting];
}
staves.Add(s);
}
return json;
}