Update architecture.md with changes to project packaging and build pipeline

This commit is contained in:
2026-03-31 17:45:24 +02:00
parent 297176b2d6
commit ef76273e78

View File

@@ -101,7 +101,10 @@ Do not introduce `/apps` + `/packages` or monorepo packaging until the current c
- version the canonical document from day one
- M0-M2 may use local draft persistence plus explicit JSON import/export for the document
- once binary assets are introduced, saved projects must keep them via embedded data or project-packaged storage
- once binary assets are introduced, user-facing save/load must move to a portable project package built around canonical scene JSON plus referenced assets
- canonical scene JSON remains the source document format, but JSON alone is no longer a portable project once external assets exist
- deployable runner output is a separate downstream package, not the editable project format
- saved projects must keep binary assets via embedded data or project-packaged storage
- never persist only ephemeral Blob URLs or runtime-only browser object references
### Early brush representation
@@ -772,7 +775,7 @@ Main responsibilities:
- instantiate the editor viewport
- connect store/document/commands
- switch into play mode or launch runner context
- manage local persistence/import/export actions
- manage local draft persistence plus project package import/export actions
Suggested major areas:
@@ -845,7 +848,8 @@ Keep ephemeral rendering and interaction state out of the serialized document.
## Build pipeline
The project has multiple “builds” conceptually:
The project has multiple derived outputs conceptually.
These should not be conflated.
### 1. Frontend app build
@@ -855,11 +859,18 @@ Standard web app bundling.
Transforms the document into runtime-usable data.
### 3. Export build
### 3. Project package build/import
Transforms document/runtime scene data into external deliverables such as GLB or a packaged runner.
Produces or reads the portable editable project format.
This is the user-facing save/load path once external assets exist.
These should not be conflated.
### 4. Runner package build
Produces the deployable/playable output for sharing or embedding.
### 5. Optional later interchange export
Produces formats such as GLB/GLTF when that becomes worth implementing.
### Runtime scene build stages
@@ -875,14 +886,52 @@ SceneDocument
-> assemble runtime scene package
```
### Export build stages
### Project package build stages
```txt
SceneDocument
-> validate
-> resolve referenced project assets
-> emit scene.json
-> copy/embed referenced assets
-> produce portable project package
```
Recommended package shape:
```txt
project/
scene.json
assets/
...
```
The concrete output may be:
- a structured folder
- a zip/archive of that folder
But the logical model should remain “canonical scene JSON plus referenced assets”.
### Runner package build stages
```txt
SceneDocument
-> validate
-> build runtime scene data
-> resolve required assets
-> emit standalone runner package
-> optional post-process
```
### Optional later interchange export stages
```txt
SceneDocument
-> validate
-> build export scene graph
-> attach materials/textures/assets
-> emit GLTF/GLB or packaged output
-> emit GLTF/GLB
-> optional post-process
```