Implement Prototype(jobs []Job) ([]string,error) by exploring subsets and reproducing the canonical optimum. Solve sorts by (End,Start,ID) and accepts starts >= last accepted end, O(n log n). IDs must be unique and End > Start, otherwise error. Touching jobs are compatible. Return accepted IDs in selection order, not input order. Empty input gives empty slice. Preserve input on success/error.
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.