BS-JD-002 - Scene document abstraction above DynamicScene RON #4
Labels
No Label
area:assets
area:brushes
area:extensions
area:governance
area:inspector
area:operators
area:physics
area:project-ux
area:quality
area:runtime
area:scene-io
area:terrain
area:viewport
priority:P0
priority:P1
priority:P2
priority:P3
roadmap:jackdaw
type:architecture
type:docs
type:epic
type:feature
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: Falling-Metal-Interactive/Blacksite#4
Loading…
Reference in New Issue
Block a user
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
Introduce a
SceneDocumentlayer that tools edit instead of touching Bevy serialization directly, while still round-tripping through current DynamicScene RON.Why
A document layer makes future diffs, prefab overrides, migrations, and possible BSN/JSN-style formats mechanical instead of tool-specific rewrites.
Implementation notes
crates/scene/src/document.rswithSceneDocument,SceneEntity,SceneComponentBlob, andScenePatch.Acceptance criteria
SceneDocumentwith validator-compatible output.ScenePatch.Tests/docs
Golden round-trip tests for current scenes and schema migration. Update scene authoring flow docs and create ADR if format direction hardens.
Starting this next.
Initial implementation target:
crates/scene/src/document.rswithSceneDocument,SceneEntity,SceneComponentBlob, andScenePatchtypes.docs/editor/architecture.mdand/or docs index for the scene authoring flow.Scope guard: no BSN/JSN migration yet; existing RON save/load behavior should remain compatible.
Implementation progress in working tree:
scene::documentwithSceneDocument,SceneEntity,SceneEntityId,SceneComponentBlob,ScenePatch, andSceneTransform.SceneDocumentis Bevy-free and schema-aware; it migrates/validates current DynamicScene RON and exposes stable actor/component concepts without using raw BevyEntityIDs as document identity.SceneIosave/load throughSceneDocumentwhile preserving current DynamicScene RON storage.Verification:
cargo fmt --checkcargo test -p scenecargo check --workspace --all-targetsRemaining before closing:
Implemented and pushed in
2054fa2(Advance M0 scene and rendering foundations).What landed:
scene::document::SceneDocument,SceneEntity, stable document IDs, component blobs, andScenePatchvocabulary for component set/remove, entity add/delete, reparent, rename, and transform set.EntityIDs out of document identity; actor IDs are used where available and anonymous document IDs are assigned otherwise.Verification:
cargo test -p scenecargo test -p settingscargo test -p shared hydrationcargo test -p game_hot rendering::cargo check --workspace --all-targetscargo check --workspace --all-targets --all-featuresNotes: