BS-JD-003 - Editor metadata for components #5

Closed
opened 2026-06-06 01:45:37 -04:00 by Rbanh · 3 comments
Owner

Summary

Add explicit component metadata for category, description, hidden state, icon, dependencies, conflicts, and authoring/runtime behavior.

Why

Component metadata should be the single source for inspector grouping, add palette filtering, command palette entries, dependency hints, and future docs generation.

Implementation notes

  • Extend component registry or add shared editor metadata type.
  • Fields: type path, display name, category, description, icon, factory, hidden, requires, conflicts, hydration effect.
  • Register shared authoring components at startup and allow game/editor extensions to add more.
  • Use metadata in Inspector Add Component, card headers, command palette, and docs generation.

Acceptance criteria

  • Add Component palette groups authoring/rendering/physics/gameplay/volumes/experimental components.
  • Hidden/runtime-only components never appear in the add list.
  • Component selection shows docs and dependency/conflict hints.
  • Missing requirements explain why a component action is disabled.

Tests/docs

Registry tests for metadata coverage and dependency/conflict behavior. Update inspector docs.

## Summary Add explicit component metadata for category, description, hidden state, icon, dependencies, conflicts, and authoring/runtime behavior. ## Why Component metadata should be the single source for inspector grouping, add palette filtering, command palette entries, dependency hints, and future docs generation. ## Implementation notes - Extend component registry or add shared editor metadata type. - Fields: type path, display name, category, description, icon, factory, hidden, requires, conflicts, hydration effect. - Register shared authoring components at startup and allow game/editor extensions to add more. - Use metadata in Inspector Add Component, card headers, command palette, and docs generation. ## Acceptance criteria - [ ] Add Component palette groups authoring/rendering/physics/gameplay/volumes/experimental components. - [ ] Hidden/runtime-only components never appear in the add list. - [ ] Component selection shows docs and dependency/conflict hints. - [ ] Missing requirements explain why a component action is disabled. ## Tests/docs Registry tests for metadata coverage and dependency/conflict behavior. Update inspector docs.
Rbanh added this to the M0 - Foundation and polish seams milestone 2026-06-06 01:45:37 -04:00
Rbanh added the
roadmap:jackdaw
type:architecture
priority:P0
area:inspector
labels 2026-06-06 01:45:37 -04:00
Author
Owner

Progress landed in 2fa6410:

  • Extended component registry metadata with descriptions, hidden state, recommendations, conflicts, categories, and hydration-effect notes.
  • Add Component UX is now registry-driven and uses category groups, disabled duplicate/conflict rows, hover details, focused search, arrow/Enter/Escape keyboard control, and an anchored shelf near the inspector button.
  • Added volume category coverage and PostProcessVolume metadata.
  • Updated README and docs/editor/README.md for the inspector shelf behavior.

Remaining before closing this ticket:

  • Add UI-independent registry coverage tests for metadata/dependency/conflict behavior.
  • Decide whether metadata should also feed command palette entries/docs generation in this milestone or move that to BS-JD-005/BS-JD-004.
Progress landed in `2fa6410`: - Extended component registry metadata with descriptions, hidden state, recommendations, conflicts, categories, and hydration-effect notes. - Add Component UX is now registry-driven and uses category groups, disabled duplicate/conflict rows, hover details, focused search, arrow/Enter/Escape keyboard control, and an anchored shelf near the inspector button. - Added volume category coverage and PostProcessVolume metadata. - Updated README and `docs/editor/README.md` for the inspector shelf behavior. Remaining before closing this ticket: - Add UI-independent registry coverage tests for metadata/dependency/conflict behavior. - Decide whether metadata should also feed command palette entries/docs generation in this milestone or move that to BS-JD-005/BS-JD-004.
Author
Owner

Progress update from 2054fa2:

  • Add Component shelf and component-card metadata work remain relevant from the earlier M0 inspector polish.
  • New rendering policy now also uses component-level messaging: point/spot LightDesc cards show an inline unsupported message and disable their controls while Solari is active, while preserving the authored component and allowing Kind to switch to Directional.
  • Hydration now enforces the same metadata-facing rule by stripping/skipping runtime PointLight / SpotLight under active Solari.

Still open:

  • Registry-level tests for metadata coverage and dependency/conflict behavior.
  • Decide whether docs generation from component metadata is part of this ticket or a later docs/tooling ticket.
Progress update from `2054fa2`: - Add Component shelf and component-card metadata work remain relevant from the earlier M0 inspector polish. - New rendering policy now also uses component-level messaging: point/spot `LightDesc` cards show an inline unsupported message and disable their controls while Solari is active, while preserving the authored component and allowing Kind to switch to Directional. - Hydration now enforces the same metadata-facing rule by stripping/skipping runtime `PointLight` / `SpotLight` under active Solari. Still open: - Registry-level tests for metadata coverage and dependency/conflict behavior. - Decide whether docs generation from component metadata is part of this ticket or a later docs/tooling ticket.
Author
Owner

M0 completion update landed in cc6acb1 (Complete M0 editor asset workflow).

Completed scope since the initial component metadata pass:

  • Static Mesh Renderer slots now present imported mesh/source-material refs without a competing per-slot material override editor.
  • Actor material authoring is consolidated under Authoring Material / MaterialDesc.
  • Texture refs in the inspector are picker/drop controls with browse, locate, clear, full-row hover/drop hit testing, active drop highlighting, and compact thumbnail previews.
  • Static mesh hydration now gives active actor MaterialDesc priority over imported source/default materials.
  • JPEG texture loading is enabled at the workspace Bevy dependency so .jpg material refs load.
  • ADR/editor docs/README updated for the material workflow.

Validation:

  • cargo fmt --check
  • cargo test -p editor operators
  • cargo check -p editor --all-targets
  • cargo check --workspace --all-targets
  • cargo check --workspace --all-targets --all-features

User QA passed. Closing the M0 metadata/inspector foundation; broader material catalog work remains tracked under BS-JD-201 and texture-set automation under BS-JD-202.

M0 completion update landed in `cc6acb1` (`Complete M0 editor asset workflow`). Completed scope since the initial component metadata pass: - Static Mesh Renderer slots now present imported mesh/source-material refs without a competing per-slot material override editor. - Actor material authoring is consolidated under `Authoring Material` / `MaterialDesc`. - Texture refs in the inspector are picker/drop controls with browse, locate, clear, full-row hover/drop hit testing, active drop highlighting, and compact thumbnail previews. - Static mesh hydration now gives active actor `MaterialDesc` priority over imported source/default materials. - JPEG texture loading is enabled at the workspace Bevy dependency so `.jpg` material refs load. - ADR/editor docs/README updated for the material workflow. Validation: - `cargo fmt --check` - `cargo test -p editor operators` - `cargo check -p editor --all-targets` - `cargo check --workspace --all-targets` - `cargo check --workspace --all-targets --all-features` User QA passed. Closing the M0 metadata/inspector foundation; broader material catalog work remains tracked under BS-JD-201 and texture-set automation under BS-JD-202.
Rbanh closed this issue 2026-06-06 05:06:32 -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#5
No description provided.