Skip to main content

Data

Part of the structure of the project is the data models. These classes are a mix of anemic domain model (no domain logic being enforced) and rich domain model (domain logic being enforced) depending on the use case.

What is the reason for these existing?

These exists to encapsulate the data of an entity (has a unique identifier and the model isn't a different instance when values are changed) or value object (any value changes means it a different instance of the model) within the system. They track the states, underlying positions and a host of other data points to make the tool work. They are separated from the service to reduce coupling between them and to allow for different models to be used which conform to the service data model interface. This gives more flexibility to the tool and allows for more complex services to be developed while keeping the domain understandable.

How are they different to the other Structure Types?

They are used within the runtime to track the current state of the scene in a myriad of ways and belong to a service. They are not used to persist or directly used to alter the state of the scene unlike other types.

What should I be using them for?

These should be used to provide state to a service and should never be interacted directly.