Why do we have them? Is it a client rendering issue? Is it a network load issue? Why do we use ColorIDs instead of straight-out RGBA values?
I came across a function that 'changes' a ColorID. However, all the bricks which already had that color stay the same, so I would assume they're 'remembering' their actual RGBA value, instead of the CID value - so why use them?
I'm not saying I disagree with the concept of a colorset itself, but if the color could be changed arbitrarily, then it could be client-sided instead of server-sided - eliminating the competition between colorsets, because a client could just use the one s/he likes best.
So why do we have ColorIDs?