BS-JD-214 - Path-agnostic asset catalog, loading, validation, and packaging #62

Closed
opened 2026-07-13 16:51:55 -04:00 by Rbanh · 1 comment
Owner

Summary

Make asset type and stable identity independent of conventional folder names across editor, runtime, validation, and packaging.

Scope

  • Replace directory-name classification for Materials, Material Instances, shaders, post effects, profiles, levels, and prefabs with registry/document-schema-aware typing.
  • Resolve current paths through AssetId before cached path hints in editor and hydration consumers.
  • Share catalog rules with project validation, build manifests, live watcher #19, and headless processing #21.
  • Protect and consistently exclude editor-managed derived/cache/trash paths.
  • Migrate existing registry records and authored references without UUID churn or semantically unnecessary rewrites.

Acceptance criteria

  • A Material/Instance, shader schema, prefab, level, model, texture, or audio asset retains its type after moving to any normal folder under assets/.
  • Static/skinned hydration, thumbnails, Locate/Browse, validation, and packaging resolve the moved asset by stable ID.
  • Ambiguous or invalid authored RON documents show diagnostics rather than being guessed as levels.
  • Existing projects migrate deterministically with stable UUIDs and byte-preserving no-op refreshes.
  • Editor and headless catalog/validation results are identical.
  • Managed artifacts never appear as user assets or package inputs unless explicitly required.

Tests/docs

Arbitrary-folder fixtures for every authored/imported kind, move/restart/PIE/package tests, and clean-worktree validation.

Dependencies

Child of #59; depends on storage contract #60.

## Summary Make asset type and stable identity independent of conventional folder names across editor, runtime, validation, and packaging. ## Scope - Replace directory-name classification for Materials, Material Instances, shaders, post effects, profiles, levels, and prefabs with registry/document-schema-aware typing. - Resolve current paths through `AssetId` before cached path hints in editor and hydration consumers. - Share catalog rules with project validation, build manifests, live watcher #19, and headless processing #21. - Protect and consistently exclude editor-managed derived/cache/trash paths. - Migrate existing registry records and authored references without UUID churn or semantically unnecessary rewrites. ## Acceptance criteria - [ ] A Material/Instance, shader schema, prefab, level, model, texture, or audio asset retains its type after moving to any normal folder under `assets/`. - [ ] Static/skinned hydration, thumbnails, Locate/Browse, validation, and packaging resolve the moved asset by stable ID. - [ ] Ambiguous or invalid authored RON documents show diagnostics rather than being guessed as levels. - [ ] Existing projects migrate deterministically with stable UUIDs and byte-preserving no-op refreshes. - [ ] Editor and headless catalog/validation results are identical. - [ ] Managed artifacts never appear as user assets or package inputs unless explicitly required. ## Tests/docs Arbitrary-folder fixtures for every authored/imported kind, move/restart/PIE/package tests, and clean-worktree validation. ## Dependencies Child of #59; depends on storage contract #60.
Rbanh added this to the M2 - Content workspace and asset pipeline milestone 2026-07-13 16:51:55 -04:00
Author
Owner

Closed against M2 candidate cf6eaba

Registry v3, stable IDs, folder-independent classification, managed-directory exclusion, runtime catalog v2, texture/model import settings, project defaults, migrations, incremental publication, and package catalog validation are implemented and deterministic.

Consolidated code, deterministic, native, and package evidence: M2 evaluation record. Candidate gates passed in full and the commit is published on codex/m2-content-workspace.

## Closed against M2 candidate `cf6eaba` Registry v3, stable IDs, folder-independent classification, managed-directory exclusion, runtime catalog v2, texture/model import settings, project defaults, migrations, incremental publication, and package catalog validation are implemented and deterministic. Consolidated code, deterministic, native, and package evidence: [M2 evaluation record](https://git.spacetrainclubhouse.com/Falling-Metal-Interactive/Blacksite/src/commit/cf6eaba53473d2825d0109f5a18f44794af5bd48/docs/editor/evaluations/content-workspace-m2/README.md). Candidate gates passed in full and the commit is published on `codex/m2-content-workspace`.
Rbanh closed this issue 2026-07-17 23:47:06 -04:00
Sign in to join this conversation.
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: Falling-Metal-Interactive/Blacksite#62
No description provided.