Lowers a fill/stroke pair to its derived material — a pure function of the paint values (§33): the same pair lowers to the same graph bytes on every call, which is what lets the backend's source-keyed program cache compile one program for N shapes sharing a paint.
Validates and resolves one non-solid §58 paint (§85: refuse, never
clamp).
name prefixes every refusal, exactly as the solid tier's do.
What
registerShapePaints()installs — the §58 paint-object tier's validation and paint-to-graph lowering, kept behind a moduleletso a bundle that never authors a gradient carries none of it (theregisterNodeMaterialPipeline()/ §62 / §37 registry move, applied to the authoring side).