Summary
Add Exodus contracts for photo libraries, creative project folders, albums, edits, sidecars, metadata, and Linux/self-hosted migration readiness.
Why
Photos, videos, artwork, edits, albums, and creative project files are major lock-in surfaces. Users need to preserve original assets, edits, metadata, album organization, and export context before leaving Apple Photos, Google Photos, Adobe ecosystems, or local proprietary creative workflows.
Contract family
Add initial contracts for:
PhotoLibrarySourceProfile
PhotoAssetRecord
AlbumMigrationRecord
PhotoEditSidecarRecord
CreativeProjectSourceProfile
CreativeProjectManifest
CreativeAssetDependencyRecord
PhotoLibraryMigrationReadinessRecord
Initial provider/source surfaces
Photo libraries
- Apple Photos library exports
- iCloud Photos exports
- Google Photos / Takeout exports
- Microsoft OneDrive camera roll
- local photo folders
- camera SD card exports
- phone export folders
- NAS photo libraries
Creative and media projects
- Adobe Lightroom catalogs and exports
- Adobe Creative Cloud file exports where user-authorized
- DaVinci Resolve project folders
- Final Cut Pro libraries
- Logic Pro projects
- GarageBand projects
- Audacity projects
- Blender projects
- Krita / GIMP / Inkscape project folders
- podcast project folders
Required semantics
- raw originals preserved before conversion or migration
- original photos/videos and edited/rendered versions are linked, not collapsed
- EXIF/XMP/IPTC metadata preserved where available
- sidecars are linked as first-class evidence blobs
- albums/folders preserved as source aliases and normalized collection records
- duplicate detection is hash-first but must not erase album membership
- live photos, bursts, motion photos, RAW+JPEG pairs, and paired sidecars are preserved as grouped records
- edits, presets, project files, and dependency links are preserved where exportable
- unsupported or proprietary-only project dependencies become blocked or metadata-only records
Preferred open targets
- originals preserved as raw evidence blobs
- XMP sidecars for metadata where appropriate
- JSON sidecars for Exodus canonical metadata
- open image derivatives where needed: PNG, JPEG, WebP, AVIF depending on policy
- open video derivatives where needed: MKV or MP4 depending on profile
- photo library export compatibility with self-hosted/open tools such as Immich, PhotoPrism, Nextcloud alternatives only where explicitly selected, and filesystem-first layouts
Acceptance criteria
- Contracts exist for photo libraries, assets, albums, edit sidecars, creative projects, dependencies, and migration readiness.
- Each contract has at least one fixture.
- Validators check all fixtures.
- EXIF/XMP/IPTC and provider metadata are source evidence, not canonical truth.
- Album membership is preserved even when assets dedupe by hash.
- RAW/JPEG/live-photo/motion-photo groups can be represented without data loss.
- Creative project dependency gaps are visible as blockers, not silent drops.
- Migration readiness can report imported, partial, blocked, metadata-only, or manual-review-required states.
Non-goals
- No destructive media optimization.
- No bypassing provider or project access controls.
- No claim that proprietary edit graphs can always be converted.
- No automatic cloud deletion or provider downgrade.
- No graph/vector/search projection as canonical custody.
Related
SocioProphet/exodus#5
SocioProphet/exodus#10
SocioProphet/exodus#11
SocioProphet/sociosphere#288
Summary
Add Exodus contracts for photo libraries, creative project folders, albums, edits, sidecars, metadata, and Linux/self-hosted migration readiness.
Why
Photos, videos, artwork, edits, albums, and creative project files are major lock-in surfaces. Users need to preserve original assets, edits, metadata, album organization, and export context before leaving Apple Photos, Google Photos, Adobe ecosystems, or local proprietary creative workflows.
Contract family
Add initial contracts for:
PhotoLibrarySourceProfilePhotoAssetRecordAlbumMigrationRecordPhotoEditSidecarRecordCreativeProjectSourceProfileCreativeProjectManifestCreativeAssetDependencyRecordPhotoLibraryMigrationReadinessRecordInitial provider/source surfaces
Photo libraries
Creative and media projects
Required semantics
Preferred open targets
Acceptance criteria
Non-goals
Related
SocioProphet/exodus#5SocioProphet/exodus#10SocioProphet/exodus#11SocioProphet/sociosphere#288