1
0
Fork 0
forked from hanez/xtc
xtc/docs/PROJECT_FORMAT.md
2026-10-26 22:51:25 +01:00

18 lines
754 B
Markdown

# Project format
Project persistence is not implemented yet. Before implementation, define a
versioned format with stable IDs for tracks, nodes, clips, connections, and
parameters.
Requirements:
- reject malformed, truncated, unsupported, or unreasonable input safely;
- validate sizes before allocation;
- store external audio assets separately from project metadata;
- define missing-asset behavior;
- never execute code during loading;
- perform file I/O only off the audio thread;
- save atomically using a temporary file and a safe rename;
- add explicit migration code when the format changes.
Choose a simple format after evaluating dependency, robustness, and human
inspectability trade-offs. Document the schema before treating it as stable.