Skip to main content

Persistence

A project is saved as one human-readable RON file, written straight from the Project struct by serde (persistence.rs). RON keeps the file debuggable and diffable with git.

ch2-persistence.png

Compatibility

There is no format version number and no migration step: older files are read by tolerant deserialisation.

MechanismCovers
#[serde(default)]Fields added after a project was saved.
Custom Deserialize on TransformTracksTransform parameters added later.
GradeTracks saved by param nameColor correction params added or reordered later; a missing one loads neutral.
ClipFilter read through StoredClipFilterThe removed Grayscale filter, loaded as a color correction with the black and white preset.
LEGACY_SLOTMAP hooks in IdMapProjects saved before 2026-09 (see IDs & IdMap).
refresh_clip_rates() after loadRecomputes the derived Clip::rate, fixing projects saved before the field existed.

The save format is still considered unstable (alpha).