I do not think you should try and predefine the "primary domain" in front. Let him appear in the development process. In addition, everything that is not common to 2 (or more) perspectives should not be in the "core".
For example, create a part of the system from the perspective of the employer. This may prompt you to create objects such as Project, Task, and Client. Then create the part from the perspective of the employer. This may prompt you to create new objects and reuse Project and Task. This is when I moved "Project" and "Task" to the "main library" shared by the rest of the system.
Sometimes you find common objects, but are connected in different ways. In this case, the connection should be introduced by the context instead of being embedded with the entities themselves.
source share