- Checking `DrawSize != Vector2.Zero` is too specific. It could also
crash on zero-height-but-non-zero-width, or
zero-width-but-non-zero-height.
- Take the `gridCache.Validate()` call out of the zero checks, because
even if the width or height are zero, not generating anything is valid
and there is no reason to validate every frame until `gridCache` gets
invalidated again.
This was always haphazard code, but by luck it never triggered before
drawable load until now. With the recently nullability changes, this
would be triggered when `flash` is not yet constructed.
Switching to `AddOnce` seems safer to avoid multiple applications,
regardless.