xtc/docs/PROJECT_FORMAT.md
2026-10-26 22:51:25 +01:00

754 B

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.