Mobiler's fixed UI wire ABI.
These types are the stable contract between any Mobiler app's Rust core and the native shell. Because they never change per app, a single shell is built once and renders any Mobiler app — the shell only ever knows these types, never an app's domain events or widgets.
- The core emits a [
Widget] tree (theViewModel). - The shell sends back an [
Action] (theEvent). - App domain events ride inside actions as opaque [
ActionToken]s that the shell round-trips without interpreting.
Style is expressed as intent tokens (e.g. [TextStyle], [Tone]); the
shell maps each to a concrete look (font, color, dp), so dark mode and theme
come for free on the native side.