The chronological view of the developer story: dated entries mixed across collections, newest first, grouped by year.
Open-source involvements carry no date — they are standing roles, not events — so the timeline leaves them out and the view renders them as their own section.
Summary
Functions
Year groups, newest year first, items newest-first within.
Functions
@spec groups(Cherry.Portfolio.t()) :: [ {integer(), [Cherry.Portfolio.Timeline.Item.t()]} ]
Year groups, newest year first, items newest-first within.