habit: `-type: bit/count `-stats: `-year: `-month: `-bit: | `-dates - array | `-count: `-dates - k,v pairs habit: `-type: bit/count `-stats: k,v (dates, bit/count) Cycle habit type: - n states - cycles through states on prev next events - represent by symbol/char - ser to usize? Modes: - day mode - shows all days of 1 month * sift months on prev/next - week mode? * aggregate stats for 1 week * show 4 weeks per view * bar graph for count and bit Command mode: - add command * add * add --type [--goal ] * interactive add command via questionnaire? - edit command? * edit * edit --goal * edit --type * interactive edit command via questionnaire? - delete command * delete * delete _ (deletes focused?) - chronological nav: * month-prev mprev * month-next mnext Interface: - move view port if focused view goes outside bounds - tab completion for command mode? requires lex table - move command window to bottom, styling - prefix command window with `:` Undo-tree: - store app states in memory - should store diffs? or entire state? - ideal undo depth limit? Auto-trackable habits - allow editing these habits via cli - can track commits, crons - disallow editing these habits via curses - storage * will be mutex with non-auto habits * serialize and save separately each other? [imp]