Worldbuilding Codex v1.4 — World Import & Export #4

Closed
opened 2026-05-19 05:04:48 +00:00 by foravo_admin · 0 comments
Owner

Imported from GitHub issue conorgregson/worldbuilding-codex#25.

Source: https://github.com/conorgregson/worldbuilding-codex/issues/25
Original author: @conorgregson
Original state: closed


Goal

Add world-level import and export so users can back up, validate, preview, and safely restore a complete world without overwriting existing data.

v1.4 should give users safer ownership over their Worldbuilding Codex data by allowing them to export a world as JSON and import that exported world later as a new world.


Context

Worldbuilding Codex v1.0 established the stable portfolio release with the core world, entity, relationship, and timeline workflows complete.

v1.1 improved entity browsing by adding search, filtering, sorting, no-results guidance, URL query state, accessibility polish, and responsive improvements.

v1.2 turned timeline events into a dedicated browsing experience with timeline search, filtering, participant visibility, route-safe navigation, and release polish.

v1.3 added a visual Relationship Graph for exploring connected lore through entity nodes, directional relationship edges, filtering, selection, highlighting, empty states, accessibility polish, and responsive graph layout.

v1.4 builds on that foundation by giving users a safer data ownership workflow. Users should be able to export a complete world backup, upload an exported world JSON file, validate it before saving, preview the imported contents, and confirm import as a new world without overwriting existing data.

This epic groups the sprint-level work for the v1.4 World Import & Export release.


Scope

  • Add world-level JSON export.
  • Include world data, entities, relationships, timeline events, tags, and event participants in the export where available.
  • Add export metadata such as app name, export version, exported timestamp, and source world ID.
  • Add a frontend export action.
  • Download exported worlds as .json files.
  • Add an import entry point.
  • Add JSON file upload for exported world files.
  • Validate imported data before saving.
  • Show clear validation errors for invalid imports.
  • Add import preview with world title and record counts.
  • Confirm import only after successful preview.
  • Save imported data as a new world.
  • Safely remap imported IDs.
  • Preserve relationship and event participant references after remapping.
  • Prevent existing worlds from being overwritten.
  • Prevent failed imports from leaving partial data behind.
  • Polish import/export loading, success, error, empty, and validation states.
  • Confirm import/export flows work locally and in production.
  • Update release documentation for v1.4.

Child Issues

  • Sprint 1: World Export Foundation
  • Sprint 2: Import Validation & Preview
  • Sprint 3: Confirmed Import & Safe Remapping

Acceptance Criteria

  • Users can export a world they own.
  • Users cannot export a world they do not own.
  • Exported JSON includes world data.
  • Exported JSON includes entities.
  • Exported JSON includes relationships.
  • Exported JSON includes timeline events.
  • Exported JSON includes event participants where available.
  • Exported JSON includes tags where available.
  • Exported JSON includes export metadata.
  • Exported JSON uses a stable structure for future import compatibility.
  • Users can open an import flow.
  • Users can upload a .json export file.
  • Malformed JSON files show clear validation errors.
  • Invalid export structures show clear validation errors.
  • Broken relationship references are rejected before save.
  • Broken event participant references are rejected before save.
  • Valid export files show an import preview.
  • Import preview displays world title.
  • Import preview displays entity count.
  • Import preview displays relationship count.
  • Import preview displays event count.
  • Import preview displays participant count where available.
  • Preview does not save imported data.
  • Users can confirm import after preview.
  • Confirmed import creates a new world.
  • Imported world belongs to the current authenticated user.
  • Imported world does not overwrite an existing world.
  • Imported entities are created under the new world.
  • Imported relationships are created under the new world.
  • Imported timeline events are created under the new world.
  • Imported event participants are created under the new world.
  • Original exported database IDs are not reused as new database IDs.
  • Relationship source and target references are remapped correctly.
  • Event participant event and entity references are remapped correctly.
  • Failed imports do not leave partial data behind.
  • Import/export controls are keyboard reachable and clearly labelled.
  • Import/export loading, success, and error states are clear.
  • Import/export UI is usable on desktop and mobile.
  • README, ROADMAP, CHANGELOG, sprint docs, PR description, and release notes are updated for v1.4.

Final Verification Checklist

Local Verification

  • App runs locally.
  • User can log in locally.
  • Backend build/typecheck passes.
  • Frontend build/typecheck passes.
  • A world with entities, relationships, timeline events, and participants loads successfully.
  • World export downloads a .json file.
  • Exported JSON includes metadata.
  • Exported JSON includes world data.
  • Exported JSON includes entities.
  • Exported JSON includes relationships.
  • Exported JSON includes timeline events.
  • Exported JSON includes event participants where available.
  • Sparse world export works.
  • Import flow loads successfully.
  • Valid exported file shows a preview.
  • Import preview shows world title and record counts.
  • Malformed JSON is rejected clearly.
  • Missing required fields are rejected clearly.
  • Broken relationship references are rejected clearly.
  • Broken participant references are rejected clearly.
  • Preview does not create a new world.
  • Confirmed import creates a new world.
  • Imported world opens successfully.
  • Imported entities appear correctly.
  • Imported relationships appear correctly.
  • Imported timeline events appear correctly.
  • Imported event participants appear correctly.
  • Relationship references are remapped correctly.
  • Participant references are remapped correctly.
  • Original world remains unchanged.
  • Re-importing the same file creates a separate new world.
  • Failed imports do not leave partial data behind.
  • Import/export controls are keyboard reachable.
  • Focus states are visible.
  • Mobile layout is usable.
  • No major console errors appear.

Production Verification

  • Production frontend loads successfully.
  • Production login works.
  • Production world detail flow works.
  • Production export works.
  • Production export downloads a valid .json file.
  • Production import flow loads.
  • Production import validation works.
  • Production import preview works.
  • Production confirmed import works.
  • Imported world opens in production.
  • Imported entities appear in production.
  • Imported relationships appear in production.
  • Imported timeline events appear in production.
  • Imported event participants appear in production.
  • Original world remains unchanged in production.
  • Re-importing the same file creates a separate new world in production.
  • Failed import does not create partial data in production.
  • Backend health endpoint is reachable.
  • No major production console errors appear.

Release Verification

  • README updated for v1.4.
  • ROADMAP updated for v1.4 release status.
  • CHANGELOG includes v1.4.0 entry.
  • GitHub release notes prepared.
  • Sprint blueprints include final verification notes.
  • Version tagged as v1.4.0.

Out of Scope

  • Public world sharing.
  • Overwriting existing worlds during import.
  • Merging imported data into existing worlds.
  • Selective import options.
  • Import conflict resolution UI.
  • Import history.
  • Exporting all worlds at once.
  • Account-level backup/export.
  • Printable world bible export.
  • Markdown export.
  • PDF export.
  • Public import links.
  • Collaboration or invite-based imports.
  • AI-assisted lore analysis.
  • Lore consistency warnings.
Imported from GitHub issue `conorgregson/worldbuilding-codex#25`. Source: https://github.com/conorgregson/worldbuilding-codex/issues/25 Original author: @conorgregson Original state: closed <!-- foravo:github-issue:conorgregson/worldbuilding-codex#25 --> --- ## Goal Add world-level import and export so users can back up, validate, preview, and safely restore a complete world without overwriting existing data. v1.4 should give users safer ownership over their Worldbuilding Codex data by allowing them to export a world as JSON and import that exported world later as a new world. --- ## Context Worldbuilding Codex v1.0 established the stable portfolio release with the core world, entity, relationship, and timeline workflows complete. v1.1 improved entity browsing by adding search, filtering, sorting, no-results guidance, URL query state, accessibility polish, and responsive improvements. v1.2 turned timeline events into a dedicated browsing experience with timeline search, filtering, participant visibility, route-safe navigation, and release polish. v1.3 added a visual Relationship Graph for exploring connected lore through entity nodes, directional relationship edges, filtering, selection, highlighting, empty states, accessibility polish, and responsive graph layout. v1.4 builds on that foundation by giving users a safer data ownership workflow. Users should be able to export a complete world backup, upload an exported world JSON file, validate it before saving, preview the imported contents, and confirm import as a new world without overwriting existing data. This epic groups the sprint-level work for the v1.4 World Import & Export release. --- ## Scope - Add world-level JSON export. - Include world data, entities, relationships, timeline events, tags, and event participants in the export where available. - Add export metadata such as app name, export version, exported timestamp, and source world ID. - Add a frontend export action. - Download exported worlds as `.json` files. - Add an import entry point. - Add JSON file upload for exported world files. - Validate imported data before saving. - Show clear validation errors for invalid imports. - Add import preview with world title and record counts. - Confirm import only after successful preview. - Save imported data as a new world. - Safely remap imported IDs. - Preserve relationship and event participant references after remapping. - Prevent existing worlds from being overwritten. - Prevent failed imports from leaving partial data behind. - Polish import/export loading, success, error, empty, and validation states. - Confirm import/export flows work locally and in production. - Update release documentation for v1.4. --- ## Child Issues - [x] Sprint 1: World Export Foundation - [x] Sprint 2: Import Validation & Preview - [x] Sprint 3: Confirmed Import & Safe Remapping --- ## Acceptance Criteria - [x] Users can export a world they own. - [x] Users cannot export a world they do not own. - [x] Exported JSON includes world data. - [x] Exported JSON includes entities. - [x] Exported JSON includes relationships. - [x] Exported JSON includes timeline events. - [x] Exported JSON includes event participants where available. - [x] Exported JSON includes tags where available. - [x] Exported JSON includes export metadata. - [x] Exported JSON uses a stable structure for future import compatibility. - [x] Users can open an import flow. - [x] Users can upload a `.json` export file. - [x] Malformed JSON files show clear validation errors. - [x] Invalid export structures show clear validation errors. - [x] Broken relationship references are rejected before save. - [x] Broken event participant references are rejected before save. - [x] Valid export files show an import preview. - [x] Import preview displays world title. - [x] Import preview displays entity count. - [x] Import preview displays relationship count. - [x] Import preview displays event count. - [x] Import preview displays participant count where available. - [x] Preview does not save imported data. - [x] Users can confirm import after preview. - [x] Confirmed import creates a new world. - [x] Imported world belongs to the current authenticated user. - [x] Imported world does not overwrite an existing world. - [x] Imported entities are created under the new world. - [x] Imported relationships are created under the new world. - [x] Imported timeline events are created under the new world. - [x] Imported event participants are created under the new world. - [x] Original exported database IDs are not reused as new database IDs. - [x] Relationship source and target references are remapped correctly. - [x] Event participant event and entity references are remapped correctly. - [x] Failed imports do not leave partial data behind. - [x] Import/export controls are keyboard reachable and clearly labelled. - [x] Import/export loading, success, and error states are clear. - [x] Import/export UI is usable on desktop and mobile. - [x] README, ROADMAP, CHANGELOG, sprint docs, PR description, and release notes are updated for v1.4. --- ## Final Verification Checklist ### Local Verification - [x] App runs locally. - [x] User can log in locally. - [x] Backend build/typecheck passes. - [x] Frontend build/typecheck passes. - [x] A world with entities, relationships, timeline events, and participants loads successfully. - [x] World export downloads a `.json` file. - [x] Exported JSON includes metadata. - [x] Exported JSON includes world data. - [x] Exported JSON includes entities. - [x] Exported JSON includes relationships. - [x] Exported JSON includes timeline events. - [x] Exported JSON includes event participants where available. - [x] Sparse world export works. - [x] Import flow loads successfully. - [x] Valid exported file shows a preview. - [x] Import preview shows world title and record counts. - [x] Malformed JSON is rejected clearly. - [x] Missing required fields are rejected clearly. - [x] Broken relationship references are rejected clearly. - [x] Broken participant references are rejected clearly. - [x] Preview does not create a new world. - [x] Confirmed import creates a new world. - [x] Imported world opens successfully. - [x] Imported entities appear correctly. - [x] Imported relationships appear correctly. - [x] Imported timeline events appear correctly. - [x] Imported event participants appear correctly. - [x] Relationship references are remapped correctly. - [x] Participant references are remapped correctly. - [x] Original world remains unchanged. - [x] Re-importing the same file creates a separate new world. - [x] Failed imports do not leave partial data behind. - [x] Import/export controls are keyboard reachable. - [x] Focus states are visible. - [x] Mobile layout is usable. - [x] No major console errors appear. ### Production Verification - [x] Production frontend loads successfully. - [x] Production login works. - [x] Production world detail flow works. - [x] Production export works. - [x] Production export downloads a valid `.json` file. - [x] Production import flow loads. - [x] Production import validation works. - [x] Production import preview works. - [x] Production confirmed import works. - [x] Imported world opens in production. - [x] Imported entities appear in production. - [x] Imported relationships appear in production. - [x] Imported timeline events appear in production. - [x] Imported event participants appear in production. - [x] Original world remains unchanged in production. - [x] Re-importing the same file creates a separate new world in production. - [x] Failed import does not create partial data in production. - [x] Backend health endpoint is reachable. - [x] No major production console errors appear. ### Release Verification - [x] README updated for v1.4. - [x] ROADMAP updated for v1.4 release status. - [x] CHANGELOG includes v1.4.0 entry. - [x] GitHub release notes prepared. - [x] Sprint blueprints include final verification notes. - [x] Version tagged as `v1.4.0`. --- ## Out of Scope - Public world sharing. - Overwriting existing worlds during import. - Merging imported data into existing worlds. - Selective import options. - Import conflict resolution UI. - Import history. - Exporting all worlds at once. - Account-level backup/export. - Printable world bible export. - Markdown export. - PDF export. - Public import links. - Collaboration or invite-based imports. - AI-assisted lore analysis. - Lore consistency warnings.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
foravo/milestone-proof-2-20260519050439#4
No description provided.