Adding new targets

Expressing an interactive system "in terms of moxie's tools" requires making some decisions.

A core choice in moxie: Builders

Existing UI systems tend to come with complex objects that require nuanced initialization, often with many parameters, some of which are optional and some which are not. Rust has one main tool for describing those initializations: the builder pattern. It is possible to describe complex "mixed-optionality" initialization without the builder pattern in Rust, but it's so prevalent in Rust that it's officially recommended.

The mox! macro ("Mockery Of XML") is essentially an XML syntax for Rust builders. See its documentation in the moxie crate for information about exactly how it expands.

Finding Event Loops

TODO

Memoization

TODO

Persistence

TODO

Parent/child relationships

TODO