You could also create multiple templates to simulator an end to end system. E.g. when simulating a smart city environment, you would create a separate template to simulate a street light, trash can, parking slot etc. When you need a complete simulation, you will run all these templates together. These templates would also be able to talk to each other, as we will see in the later documentation.
Should we describe the entire behavior of a device into the single template? Not necessarily. We will learn in the later chapters about glob key-value stores which could save device states in persistent memory. Using these storage, we could create separate templates which retrieve the last known value of a device state, run a scenario and then save the latest state back in the memory.