ui: review candidate physical material cards without assignment (#1344)

Adds a read-only review window to Validate Physical Material Data: paste a schema-1 card, see its known properties in SI units, unknown ones marked, with stated conditions and source claims. Nothing is assigned or saved.

Co-authored-by: 0xlillith <[email protected]>
This commit is contained in:
seluneand0xlillith authored and GitHub committed 2026-10-15 13:55:30 -04:00
1 parent be985f136d
commit a47e82ba94
11 files changed
+527

No files matched your search

+20
View File
@@ -13,6 +13,26 @@ advanced rendering. The result reports `analysis_solver_available: false` and
## Contract (standalone card schema 1)
### Candidate review window
Search for **Validate Physical Material Data** in the command palette (or use
`ui.start` with `material.properties.validate`) to open the candidate reviewer.
Paste a schema-1 card object and choose **Review card**. The existing engine
validator checks it; the window shows known properties in SI units, unknown
properties, per-property conditions and source claims as inert text. Material-local
axes do not assign a frame to a body. Isotropic G/K come from the engine report.
Editing the input clears the previous review. Invalid input shows its refusal
without retaining a stale valid result. Input is capped at 262,144 characters and
256 KiB before JSON parsing; the validator's tighter structural and text budgets
still apply. The window does not read files, fetch references, assign properties,
replace density, modify history or save the candidate. Close discards it. Calling
the engine's JSON command still returns its report without opening a dialog.
This main-based review unit is independent of assigned-card persistence, local
file import and the design-owned inspector follow-up in #1094. No dataset or
rendering capability is supplied by reviewing a candidate.
A card has `schema_version: 1`, `designation`, `family` (`wood`, `polymer`, `glass`,
`metal`, `other`), `sources` and `properties`. Source IDs are exact, case-sensitive
local references. Each source has `id`, `title`, `kind` (`user_supplied`,