How delairec/planet-crafter-save-tools works
Planet Crafter Save Tools is a browser-based and command-line toolkit for validating, merging, and inspecting game saves. The principal flow loads local save files, parses their sections, validates them, then either merges two saves into a downloadable result or maps a save into overview, player, power, configuration, and terraformation views. The graph includes those documented capabilities and the sampled parsing, mapping, and composition layers. Some UI wiring and unsampled use-case internals are not shown; those links are omitted or marked unverified.
Main entry points: application Display Use Cases · UseCase.ts Save Use Cases · MergeSaveFilesController.ts Merge Controller · MergeSaveFiles.ts Merge Rules
Components 26
User Interfaces
- Browser Manager
packages/ui-save-manager/src/app.tsx - Merge Form
packages/ui-save-manager/src/components/MergeSection.tsx - Loaded Save State
packages/ui-save-manager/src/hooks/useLoadedSave.ts - Merged Save State
packages/ui-save-manager/src/hooks/useMergedSaves.ts - Merge CLI
packages/cli-merge/cli/initMergeCli.js - Validation CLI
packages/cli-validate/cli/validate-cli.js - Merged Save File
- Save Views
packages/ui-save-manager/src/routes/index.tsx
Save Processing
- Parsed Save Sections
packages/core-mapping/src/save/domain/save/SaveSections.ts - Section Parser
packages/core-mapping/src/save/infrastructure/SaveSectionsParserService.ts - Save Use Cases
packages/core-mapping/src/save/application/UseCase.ts - Save Validation
packages/core-mapping/src/save/infrastructure/SaveValidatorService.ts - Validation Controller
packages/core-mapping/src/validation/controllers/ValidateSaveFileController.ts
Save Merging
- Merge Controller
packages/core-mapping/src/merge/controllers/MergeSaveFilesController.ts - Merge Rules
packages/core-mapping/src/merge/application/MergeSaveFiles.ts - Section Resolutions
packages/core-mapping/src/merge/domain/rules - Save Serializer
packages/core-mapping/src/merge/infrastructure/SaveSectionsSerializerService.ts
Save Visualization
- Overview Controller
packages/core-mapping/src/display/controllers/LoadOverviewPageController.ts - Display Use Cases
packages/core-mapping/src/display/application - Display Composition
packages/core-mapping/src/display/composition/useCaseFactories.ts - Section Reader
packages/core-mapping/src/display/infrastructure/SaveSectionsReaderService.ts - Domain Mapper
packages/core-mapping/src/display/infrastructure/SaveSectionsMapperService.ts - Game Domain Model
packages/core-mapping/src/display/domain/entities - Page Presenters
packages/core-mapping/src/display/presentation
Game Reference Data
- Game Reference Tables
packages/data-energy
Other components
- Save Owner
Connections 27
- Save Owner → Browser Manager: opens locally
README.md - Save Owner → Merge CLI: runs merge
README.md - Save Owner → Validation CLI: checks save
README.md - Browser Manager → Merge Form: offers merge
- Save Owner → Loaded Save State: selects save
- Merge Form → Merged Save State: submits saves
- Merge CLI → Merge Controller: invokes merge
- Validation CLI → Validation Controller: invokes validation
- Validation Controller → Save Use Cases: creates use case
packages/core-mapping/src/validation/controllers/ValidateSaveFileController.ts - Save Use Cases → Section Parser: parses content
- Section Parser → Parsed Save Sections: decodes sections
packages/core-mapping/src/save/infrastructure/SaveSectionsParserService.ts - Save Use Cases → Save Validation: validates save
- Merge Controller → Merge Rules: executes merge
packages/core-mapping/src/merge/controllers/MergeSaveFilesController.ts - Merge Rules → Section Resolutions: resolves conflicts
- Merge Rules → Save Serializer: serializes result
- Merge Controller → Merged Save File: returns result
- Save Owner → Overview Controller: requests views
- Overview Controller → Display Use Cases: loads overview
packages/core-mapping/src/display/controllers/LoadOverviewPageController.ts - Display Composition → Display Use Cases: constructs use cases
packages/core-mapping/src/display/composition/useCaseFactories.ts - Display Composition → Section Reader: constructs reader
packages/core-mapping/src/display/composition/useCaseFactories.ts - Display Use Cases → Section Reader: reads save
- Section Reader → Section Parser: parses sections
- Domain Mapper → Game Domain Model: builds entities
packages/core-mapping/src/display/infrastructure/SaveSectionsMapperService.ts - Domain Mapper → Parsed Save Sections: maps entries
packages/core-mapping/src/display/infrastructure/SaveSectionsMapperService.ts - Display Use Cases → Page Presenters: presents results
- Page Presenters → Save Views: formats views
- Display Use Cases → Game Reference Tables: reads game tables