Service
Part of the structure of the project is the service models.
What is the reason for these existing?
The concept behind a service is it's a way of interacting with different processes within the system. They are all data driven by data types which are then used to influence the outcomes of the methods. This means a service behaviour can be altered by providing different data types to them resulting in very different results but interactions with the two are done in the same manner.
How are they different to the other Structure Types?
These provide the correct way to interact with data types and the scene within the tool as they will enforce specific behaviours. They control and mange the whole system while providing clear contexts. This helps keep the code understandable and easy to extend.
What should I be using them for?
These should be the only way you should interact from one type to another.