Field descriptor, already projected to the render model.
Already-resolved field value.
Per-surface render context.
Which surface is being painted.
Raw feature property bag, for the taxonomy seam and the action payload.
The rendered element, or null.
Renders one field to DOM, for a given surface.
An unknown widget yields
nullAND a runtime warning — decision Q9. It used to yieldnullin silence on one surface and a raw fallback on the other, so a typo'd widget was indistinguishable from a field with no value. It is never fatal: a bad profile must not blank the map.