The domain allows you to define types and create objects representing your business model. Each object can have a set of attributes, which take parameters, functions or literals as value.
The goal of the Domain is twofold:
- it allows you to organize your parameters and functions into business objects, creating an easy way to navigate your configuration.
- it creates a transparent way of accessing those parameters and functions from your application (or within Hyperon functions) without tying it down to specific parameter/function names, allowing you to only hardcode behaviour that is common to all objects of a given type, while maintaining the freedom to implement specific behaviours of each object individually.