Skip to content

Integrate lossless authored documents with the shared renderer #12

Description

@zoeyrose

Important

This preserved authoring issue now belongs to the fresh MIT Rust editor under the replacement program. Gameplay/content design and safe-authoring requirements remain unchanged. Legacy implementation paths below are historical evidence.

Replacement implementation contract

Implement the editor-owned content-document-to-SceneSnapshot adapter. Depend downward on released toolkit and renderer crates, retain stable source spans/edit identities/revisions, and contain no renderer fork, client session, protocol parser, or alternate content parser.

Verified original past contributions by an approved MIT provenance grantor may be copied, migrated, translated, or relicensed under MIT only after complete Git provenance and third-party-material review is recorded. Other GPL implementation/tests must not be mechanically ported.

Required verification

  • Preserve unknown fields, comments, ordering, and untouched bytes through lossless toolkit transactions.
  • Use semantic commands with revision preconditions, dry-run/diff, undo/recovery, validation, and atomic writes.
  • Use the exact shared renderer and toolkit APIs; no duplicate parser, renderer, or pixel-selection path.
  • Test Linux/Windows, malformed/large projects, external edits, storage/device failures, and wrapper-isolated playtests as applicable.
Preserved product/design specification and historical implementation notes

Parent and roadmap

Outcome

Connect authored map documents and local assets to the same renderer/scene contract used by the live client without introducing an editor-only visual path.

Scope

  • Implement an authored-document scene adapter that preserves object order, named roles, linked physical levels, lighting, fog/cutaway options, animation, and multipart placement.
  • Implement a repository-local resource provider over archetypes, faces, animations, treasures, regions, and attribution metadata with incremental invalidation.
  • Keep GPU resources renderer-owned and authoring state editor-owned.
  • Add paired live-client/authored-document visual fixtures and renderer/resource lifecycle tests.

Superseded path / cleanup target

Remove any temporary preview renderer or direct dependence on client globals. The editor must consume the contexts owned by atrinik/renderer#17 and the atrinik/renderer#13 context child.

Acceptance criteria

  • Equivalent live and authored scenes produce matching representative output.
  • Local asset changes invalidate only affected catalog/resources and missing references are diagnosed.
  • The adapter preserves unified cross-depth painter order and ordered same-tile records.
  • No editor authoring state or filesystem-write capability enters the connected client binary.

Validation baseline

Before: the proposed editor has no supported path to exact client visuals or reusable client assets.

After: authored documents are a first-class consumer of one renderer/resource/scene architecture.

Run visual equivalence fixtures, asset invalidation tests, renderer lifecycle tests, and Linux/MinGW builds for both consumers.

This issue is a bounded child of #13. The parent remains open until every sibling child is complete.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Fields

    Priority

    None yet

    Start date

    None yet

    Target date

    None yet

    Effort

    None yet

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions