Data model
Rust and TypeScript share serialized types from shared-types.
ScreenInfoidentifies a screen and itsRectwork area.WindowDescriptorcontains an id, app name, title, icon color, andWindowState.Layoutcontains a name, type, zone count, column/row patterns, optional ratio, gap, margin, and timestamps.Settingscontains preferences and the last selected layout or target-screen hints.SystemStatuscontains capability values and adapter errors.ArrangeRequestmaps zone indices to window ids.ArrangeResultcontains overall success andPerWindowResultentries withMovedorFailedstatus, actual rectangle, and error.
The frontend imports generated TypeScript bindings rather than defining a second contract. Changes to these structs affect both the Tauri IPC payloads and the Svelte stores.