Phase 4 updates

Phase 4 · Slice 5 ·

Saving to .unity

  • scene_save to a .unity path patches the file the scene came from, measured against the scene as exported when opened: untouched documents stay byte for byte (a save without edits reproduces the file), changed values are rewritten at their keys only, new objects and components get new documents with fresh file IDs, deleted ones lose theirs (with their parents' child lists, component lists and SceneRoots updated).
  • Prefab instances keep their links: property edits become m_Modifications (property paths, references as objectReference), removed components and objects become m_RemovedComponents/m_RemovedGameObjects, added ones m_AddedComponents/m_AddedGameObjects with stripped placeholders, deleting an instance removes it, reparenting changes m_TransformParent.
  • Values are written in Unity's style: flow mappings for references, vectors and colors, block structs, sequences at the key's indentation, hex primitive arrays, shortest single-precision numbers without exponents, quoting only when needed; the YAML parser keeps key order so rewritten blocks keep Unity's.
  • Checked against Unity: SceneDump.cs opened edited and saved Coin Dash levels (plain edits, and overrides on the coin prefab's instances) in the Unity editor with no warnings, and what it loaded matched Tassix's reading of the same files field for field. An e2e test saves without edits (identical bytes) and with edits, then reopens the file in a fresh session and gets the edited scene back.
  • Next: FBX meshes and sub-assets by file ID, ScriptableObjects, .asmdef assemblies, MCP resources and the exec tool.