Implement Prototype(tree *Tree) [][]string by collecting each depth separately; Solve processes a queue frontier in O(n) time, O(w) active frontier storage excluding result. Nil root returns nonnil empty slice. Nodes have unique names, no cycles/shared children. Return left-to-right names grouped by depth. Preserve every node and link. Struct pointers replace recursive tuple nodes.
Edit exercise.go; retain the public types and signatures. prototype and final are separate stages. The executable tests recover panics as failures, report named checks, and exit nonzero on any failure. A successful run must execute at least one check. Tests use logical time or explicit synchronization where relevant.
Complete the starter code, then run the checks.
Results and errors will appear here.