761 B
761 B
Starter Architecture Notes
Initial architecture decision
Start as a pure Dart scheduling-core package. Do not begin with UI. The scheduling rules are the hardest and most important part of the product, and they should be testable without a Flutter app running.
Future shape
Flutter UI
↓
View/application state
↓
Pure Dart scheduling core
↓
Repository interfaces
↓
Local persistence, likely SQLite/Drift later
↓
Future sync layer
Why pure Dart first
- Easier to test scheduling rules.
- Less UI noise for Codex.
- Cleaner migration into Flutter later.
- Avoids premature sync/background complexity.
Key invariant
The scheduling core must never move locked or inflexible blocks during automatic rescheduling.