v0.14.3 — shader fallback no longer picks a destroyed shader
Shader.Find(a) ?? Shader.Find(b) is the Unity fake-null trap: Unity overloads == so a destroyed object reports as null, but ?? doesn't use that overload. A destroyed-but-not-null result won the chain and gave a material whose shader has no ShadowCaster pass — an object that renders and casts nothing.
Each candidate is now tested with ==, and falling back off the package's own vertex-colour shader logs a warning, since it costs the colours and the shadow together.