Would it be worth documenting the fact that `sources` can be changed, but must be replaced as a unit?  E.g. if you try and do `skyBox.sources.positiveX = 'someNewImage';`, the update code won't fire.  Though, we probably have problems like this elsewhere too.