I don't know if this is possible, but I'd love to be able to set different materials on each instance of a geometry node without having to realize instances first. This is what I have now:
This works in generating many copies of a mesh and giving each copy a specific material, but the problem I'm having is that "realizing" them means I'm ending up with 10s of millions of verts and running out of memory, rather than just having the one instance of data but with different materials.
I have seen similar examples where just the colour is changed, but I have multiple changes per material to cater for (colour, roughness, metalness, transmission, etc).
Basically I want more than 2000 bricks.