Maomi is based on data bindings. Changing the component fields will auto-update the template.
However, changes to the component fields should always be asynchronous. To visit the component fields, a task must be generated.
Tasks are asynchronous jobs that can visit one component.
To generate a task, call "task(...)" on the ref-counted token. In this way, the template will always be updated after the task ends.
Sometimes it is needed to read fields but not update them. To avoid the template update overhead, it is able to generate a read-or-write task.
Because tasks are asynchronous, references cannot move across tasks. Thus &self is not usable in tasks. The ref-counted token can be cloned and move across tasks.