There are countless things in any world that have the same name. Obviously, you can have two people with the same name. But it's also quite reasonable to have different things with the same name. For example, a person, a city, and a ship could easily have the same name. Heck, the city and ship might specifically be named after the person! Realm Works has to handle that smoothly, so relying solely on the name is simply not possible.
Then consider the scenario where content is being published/shared by others. It's quite likely that the same name can be used for two completely different NPCs in two different sets of published content (ModuleA and ModuleB). And you might use the exact same name for an NPC in your own world. So when you import ModuleA into your world, do you want the Fred Smith in there to be automatically merged in with your own Fred Smith? And when you import ModuleB, the Fred Smith from that module is further merged into your own NPC? I'm guessing you would think of that as a problem, right?
Consequently, we have to keep every topic distinct and used an special internal identifier to track which topic is which. It would be folly for us to try and do anything else, since we would sometimes get it right and sometimes get it wrong. And when we got it wrong, we'd actually screw things up in ways that would make it very hard to unravel (e.g. merging two separate Fred Smiths into your own Fred Smith when you imported modules A and B).
What Realm Works DOES do is track the source of any material you export and import. So let's say you create Fred Smith in one realm, export Fred, and import him into another realm. Then you modify Fred in the original realm, export him, and import him again into the second realm. When you do that, we'll recognize that you've updated Fred and properly update him with the new material in the second realm. So there IS a lot of power available here. But we divine the right behavior based solely on the name.
Hope this explanation helps!
