- Exists — it’s in Firestore, its manifests + assets are in GCS, and anyone with access (owner or active dev) can pull it.
- Deleted — the Firestore doc is gone, every blob under
shared_presentations/<id>/has been removed, every collaborator row is dropped. Irreversible.
State transitions
Why no archive?
Archive in v0.1–v0.4 meant “this deck is soft-deleted; you can’t push to it, its URLs return 404, but the data is kept in case you want to restore it.” Two problems:- It blocked owners from pushing, which broke the “I pushed, now I want to stop it being public” use case. They had to unshare AND unarchive to keep working.
- Restore was never implemented. Archive was in practice “deleted but lingering.”
unshare (revoke tokens, keep the deck fully functional for editing) and delete (hard remove) gives each operation one clean job.
What about “shared with me”?
Having dev access to a deck (see Collaboration) is independent of the deck’s own lifecycle. A shared deck can be inUnshared state — collaborators can still push and pull. They see it in slideless list with role: 'dev'.
When the owner deletes a deck, every collaborator row is dropped and the deck disappears from collaborators’ list.