Implement Prototype(commands []BSTCommand) ([]BSTResult,error) with an unsorted unique-key list; Solve implements a BST including deletion and floor. Start empty. add/remove report whether membership changed; contains reports membership. Encode these as {Kind:"bool",Bool:...} with nil Value. floor returns {Kind:"floor",Value:&key} or nil Value; Bool stays false. Unknown operation returns error. Preserve commands. An unbalanced BST may have linear height.
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.