// 書き庭の受け渡しパック timeline.json のDTO(スキーマ v1)。 // 仕様: 書き庭リポジトリ docs/ymm4-bridge.md namespace KakiniwaYmm4Import; public class Pack { public int Version { get; set; } public string Title { get; set; } = ""; public string Episode { get; set; } = ""; public PackTiming Timing { get; set; } = new(); public List Characters { get; set; } = []; public List Events { get; set; } = []; } public class PackTiming { public double CharsPerSecond { get; set; } = 6; public double SerifGap { get; set; } = 0.2; public double StageSeconds { get; set; } = 2; } public class PackCharacter { public string Id { get; set; } = ""; public string Name { get; set; } = ""; public string? Ymm4Name { get; set; } public string? PortraitDir { get; set; } public List Expressions { get; set; } = []; } public class PackExpression { public string Id { get; set; } = ""; public string? Label { get; set; } public bool Default { get; set; } public string? File { get; set; } public PackPsd? Psd { get; set; } } public class PackPsd { public string Path { get; set; } = ""; public List Layers { get; set; } = []; } public class PackEvent { public int No { get; set; } public string Scene { get; set; } = ""; public string Type { get; set; } = ""; public double Start { get; set; } public double Seconds { get; set; } public string? Speaker { get; set; } public string? SpeakerName { get; set; } public string? Expression { get; set; } public string? Text { get; set; } public string? Reading { get; set; } public List Se { get; set; } = []; public PackAssetRef? Asset { get; set; } public string? Name { get; set; } public string? Arg { get; set; } } public class PackAssetRef { public string Name { get; set; } = ""; public string? Path { get; set; } }