name: material-slot-live-edit purpose: Verify persistent live Material edits, explicit save separation, and the unified responsive slot widget. preconditions: editor_scene contains a primitive and static mesh using a project Material; no editor process is running. build_lane: dev fixture: assets/materials/pebble_bricks.ron steps: - Select the primitive using pebble_bricks and expand its material parameters. - Drag a scalar control, release it, and observe the surface for at least five seconds. - Switch selection away and back, then compare the scalar value and rendered surface. - Narrow and widen the Inspector around the responsive threshold. - Save the active Material document and observe status and processing indicators. - Select a static mesh material slot and compare its slot presentation. - Leave the expanded material card idle for five minutes while sampling the editor process GPU memory and terminal diagnostics. - Close and relaunch the editor, then reopen the same Material slot. assertions: - The surface changes continuously, does not flicker back after release, and the editor remains responsive. - Selection changes preserve the live value and the compact amber dirty indicator without label overlap. - Scalar save becomes clean without a PROCESSING state or a long-running UI operation. - Primitive and static-mesh slots use the same compact header and schema-driven parameter layout. - Narrow and wide layouts contain every control without overlap, clipping, garbled rows, or redundant diagnostics prose. - No Apply, Revert, Ctrl+S hint, inline Explicit label, or inline Source & Diagnostics section appears. - GPU memory remains bounded, no repeated egui multipass ID warning appears, and the editor stays alive without a renderer Out of Memory error. - Relaunch preserves the saved Material value and rendered result. evidence: Target-window captures for dirty-wide, dirty-narrow, saved, and relaunched states plus hashes. cleanup: Close the spawned editor and atomically restore pebble_bricks.ron from the runner snapshot. invalidates: Material UI, material persistence, or slot-resolution code changes.