Implement Prototype(allowed [][]string) []string by enumerating combinations; Solve backtracks over sorted unique choices with early rejection and rollback. Pick one string per input position with no repetition, returning the lexicographically smallest complete assignment. Return nil for impossible; an empty outer slice returns a nonnil empty slice. Exact strings; preserve every inner slice. Worst case is exponential.
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.