switch from Array<Shader> to shader list, allow zero-allocation and easy chaining
bugfix
Merge heaps main
Merge heaps_shaderlist, less allocations