Why does every object in BabylonJS require a name?

I wonder why does every object you create (Box, Sphere, Camera, Light, etc) require a name to be specified?

I’m new to BabylonJS, but have used ThreeJS before, where there is no such a requirement. So, I wonder why such a design decision in BabylonJS?

I understand that these names allow me to look up objects by name. But what if I never intend to look up a specific object – why do I still need to specify a name?

In addition to the name all objects also seem to have an id. But setting of the id is not required. Though apparently these id‘s are the same as name. Looks like you can look up objects also by id. I’m even more puzzled now.

More specifically I would like to know:

  • Do these names have to be unique? What will happen if they are not?
  • What to do if I don’t care about a name? Use empty string?
  • Perhaps I should care about always using some sensible name? Why?
  • What’s the difference between name and id?