## Architecture
Note: This doc adapted from elm-guide
Sauron follows the Model-view-update architecture (also known as The Elm Architecture).
Sauron program produces HTML to show on screen and then the computer sends back
messages of what is going on. "They clicked a button!"
What happens within the Sauron program though? It always breaks into three parts:
- Model - the state of your application
- View - a way to turn your state into HTML
- Update - a way to update your state based on messages
These three concepts are the core of Model-view-update architecture.
## Application and Components
In order for your Model to be run in a sauron Program it has to implement the Application trait.
The Application trait requires you to define a `view` function which tells the program how to display the Model,
and an `update` function which describes how the Model state is updated based on the messages.