Lossless, round-trippable JSON for dm2-dungeon #309
Labels
No labels
area/ci-release
area/cli
area/docs
area/dungeon
area/ftl
area/graphics
area/gui
area/music
area/saves
area/tooling
port/amiga
port/dos
port/fm-towns
port/mac
port/pc98
port/sega-cd
priority/high
priority/low
priority/medium
type/bug
type/chore
type/docs
type/feature
type/research
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
jqueuniet/dm2-tools#309
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Add a lossless, round-trippable JSON representation for
dungeon.datindm2-dungeon,alongside (not replacing) the existing lossy
json::skprojectinterop dump.Motivation
Underpins the dungeon editor (GUI, #305) and the browser dungeon viewer/editor behind
#301. The current
json::skprojectdump is one-way and lossy (retired-C#-tool interop;start_maphardcoded to 0) and cannot serve as an editable representation.Design
(#308).
Dungeon<'a>is borrowed, so an owned document model is required: build fromDungeon, feed the existing byte-exactwrite_to/to_bytes(per-section writersMap::to_bytes,Body::to_bytes,Columns::to_bytesare already round-trip-tested).json::skprojectuntouched (external interop); add a new lossless module.Scope / acceptance
parse -> doc -> JSON string -> doc -> to_bytes == original bytes, byte-identical,over the dungeon fixtures in both LE and BE.
Labels
type/feature,area/dungeon,priority/low.