FitResult
How well one 2D mapping takes a set of captured canvas points to where they are now - see specs/2026-10-22-model-impostors-design.md. residual is the farthest any point lands from where it really is, in pixels; invalid params mean the fit isn't usable.
Properties
residual(float)params(roAssociativeArray) — scale + translate: x' = scaleX * x + offsetX, y' = scaleY * y + offsetY