usecrate::infrastructure::model::Task;pubenumBoardAction{
Quit,
OpenTask(String),}/// A feature = a chain of tasks linked by `sara dep` dependencies (one connected
/// component of the dependency graph). Standalone tasks land in a trailing
/// pseudo-feature with `grouped == false`.
pubstructFeature{pubtitle: String,
pubdone:usize,
pubtotal:usize,
pubgrouped:bool,
}pubstructBoardState{pubproject: String,
/// Tasks in feature-grouped, dependency (blockers-first) order.
pubtasks:Vec<Task>,
/// Feature index for each task in `tasks`.
pubfeature_of:Vec<usize>,
pubfeatures:Vec<Feature>,
/// Precomputed counts for the title bar — stable between reloads.
pubpending:usize,
pubdone:usize,
pubfeature_count:usize,
pubselected:usize,
pubscroll:u16,
}