- Define `Model`, `Msg`, `init`, `update`, and `view` as the five required components of every Elm module following the Elm Architecture.
- Keep `update` a pure function — all side effects must be expressed as `Cmd Msg` values returned alongside the updated `Model`.
- Use nested `Msg` constructors to delegate to sub-components: `type Msg = AuthMsg Auth.Msg | CartMsg Cart.Msg`.
- Use `Cmd.map` and `Html.map` to integrate sub-component `Cmd` and `Html` values into the parent without exposing child internals.