{"tasks":[{"name":"column-restructure","description":"Merge first_name and last_name into a single full_name column (concatenated with a space) without data loss. Apostrophes in names (e.g., O'Brien) must be preserved.","difficulty":"easy","max_steps":10},{"name":"soft-delete-restoration","description":"Restore deleted products from the deletion_log table back into the products table. Use product_id from deletion_log (NOT the log's id column) as the primary key. Add is_deleted (1) and deleted_at values from log. Original rows stay as is_deleted=0, deleted_at=NULL.","difficulty":"easy","max_steps":10},{"name":"table-normalization","description":"Normalize a flat purchases table into customers and orders tables linked by customer_id (FK). Ensure customers are distinct by email.","difficulty":"medium","max_steps":15},{"name":"schema-version-merge","description":"Merge products_v1 (Legacy) and products_v2 (Modern) with ID collision logic: Modern (v2) wins. Coerce v1 price strings ($) to REAL.","difficulty":"medium","max_steps":15},{"name":"multi-entity-extraction","description":"Decompose sales_records into 3NF: salespersons, customers, products, and sales. Route rows with missing emails to data_issues.","difficulty":"medium","max_steps":15},{"name":"cascade-migration","description":"Multi-table FK cascade with type coercion for salary and orphan logging for assets.","difficulty":"hard","max_steps":20},{"name":"dual-source-consolidation","description":"Consolidate Legacy CRM and Modern SaaS data with cross-system email deduping and complex state/type mapping.","difficulty":"hard","max_steps":20},{"name":"data-poisoning-quarantine","description":"The ultimate technical test: Migrate inventory from a 'poisoned' staging table. Cleanse raw price strings and route un-coerceable rows (like 'N/A') to a quarantine table while maintaining strict schema integrity.","difficulty":"extreme","max_steps":15}],"action_schema":{"sql_command":"string -- The SQL statement to execute","reasoning":"string -- Explanation of the action (optional)","submit_final":"boolean -- Set true when migration is complete (default: false)"},"example_action":{"sql_command":"CREATE TABLE ...","reasoning":"Creating the new destination table before copying data.","submit_final":false}}