# K1 Rust worktrees
`UnpublishedId` is the canonical 24-lowercase-hex rendering of the 12-byte transaction ID that created an unpublished branch. `Worktree` binds that stable ID to its latest transaction revision and complete validated source. Replacing a worktree requires the same source identity, so ordinary edits cannot reserve or change a semantic version.
`SourceSelector` identifies either one immutable published semantic version or one unpublished branch. `OpenedSource` returns a selector, exact source, and an unpublished revision when applicable.
`publication_source(source, version)` clones a validated source package and changes only the TOML value of `[package].version`, then revalidates the complete package under the requested stable `LibraryId`. It does not mutate its input or perform I/O. All other operations are in-memory and effect-free.