pub struct Desired {
pub clip: Clip,
pub lineage: LineageContext,
pub path: String,
pub format: AudioFormat,
pub meta_hash: String,
pub art_hash: String,
pub modes: Vec<SourceMode>,
pub trashed: bool,
pub private: bool,
pub artifacts: Vec<DesiredArtifact>,
}Expand description
One desired clip in the current selection.
The caller has already deduped per account and resolved naming and format,
so each entry is the authoritative target state for one clip. modes lists
every selected source that currently holds the clip, so a clip can be held
by a Mirror and a Copy source at once.
Fields§
§clip: ClipThe clip itself, carried so actions can be executed without a re-fetch.
lineage: LineageContextThe clip’s resolved lineage, carried so the executor tags with the same root/parent/album that drove naming and the change hash.
path: StringResolved relative target path for the file.
format: AudioFormatResolved target format.
meta_hash: StringHash of the clip’s tag-bearing metadata.
art_hash: StringHash of the clip’s cover art.
modes: Vec<SourceMode>Every selected source that currently holds this clip.
trashed: boolTrue when the clip is trashed in Suno (removed from the source).
private: boolTrue when the clip is private; private clips are always kept.
artifacts: Vec<DesiredArtifact>The clip’s desired external artifacts (cover.jpg, cover.webp, …).
This is the authoritative target set of sidecars for the clip: an artifact present here is written when missing or changed, and a manifest artifact absent here is a removed kind and reconciled for deletion. It defaults to empty; later phases populate it (P7 covers per-song art), so for now every production caller passes an empty vec and only tests set it.