Eight tasks mixing the intermediate skills: window functions and QUALIFY, paths into VARIANT columns, FLATTEN and CTEs. Several need two of them together, the way real questions do.
Remember the habits that keep JSON queries honest: cast every path you group or compare on, use OUTER => TRUE when an empty array shouldn't make a row disappear, and give ROW_NUMBER a tie-breaker when the sort can tie.