Nameable stands for an Object that contains a name(std::wstring), which does not has to be unique.

If you are looking for Object with unique identifier (ID), check Identifiable instead.

Once given (upon calling the constructor of the class), name cannot be changed. It simplify the workflow (once established, name will remains constant).