pub fn team_shape(projects: &[&Project]) -> Vec<ShapeRow>Expand description
Walk the given projects into one “You → managers → workers” tree.
One shared Root row, then per project: managers (id-sorted via the
BTreeMap key order) each followed by the workers that reports_to
them (id-sorted); workers whose reports_to isn’t a manager in their
project hang at the top level (depth 1) after the managers. Mirrors
init.rs::team_structure_lines’s grouping/ordering exactly, minus
color.