Custom asset fields and import: user page + three developer guides
User page: Recording anything — custom asset fields and import.
Three developer guides rather than one, split by LAYER rather than by size:
Typed-Fields-Engine-Developer-Guide the shared machinery. Two consumers
today; adding a third should be a
descriptor and a query, not a new engine
Custom-Asset-Fields-Developer-Guide the assets consumer: catalogue, sets, the
two ways a set attaches, and every
surface the values have to reach
Asset-Import-Developer-Guide the feature on top: reconciliation, the
preview, the holding area
Each carries the traps rather than just the design, because that is what a
developer guide is for: the tenancy normalisation that would have duplicated the
whole estate on every run, per-row atomicity, row_number being reserved in
MySQL 8, mixed local/UTC timestamps, two phantom theme tokens, the guarded
script block, t() not being bootstrapped in API endpoints, toast.js using
textContent, and modal markup not being portable between two pages of the same
module.
Sidebar updated under Assets. Every internal link checked against an actual
file, and every source file named checked to exist.