shaderName property
Entry name inside whichever bundle the backend supplied.
This is the contract the engine cannot abstract away: it names shaders,
and every backend must ship a bundle containing them under these names.
Every backend package lists them in its own bundle manifest, and a
backend that answers to a name the engine does not ask for is unused
weight while one that misses a name the engine does ask for fails at
Renderer.create, which names the missing entry.
Implementation
final String shaderName;