Models
Models are the elements that exist throughout the execution of a program, extending beyond the lifetime of treatments. In particular, they allow interaction with the outside of a program. Models can be defined and configured, then instantiated in treatment declarations.
Definition
A model is defined using a base model and parameters.
model MyDatabase(const max: u32 = 5) : SqlPool
{
    min_connections = 1
    max_connections = max
    url = "postgresql://my-user@my-server:4321/my_database"
}Inheritance
A model being defined on a base model, it inherits the characteristics, and any treatment requiring a model of the base type can accept any model defined on it.
treatment myApp()
  model database: MyDatabase(max=3)
{
    userData[database=database]()
 
    /* … */
}
 
treatment userData[database: SqlPool]()
{
    /* … */
}