Simple Todo List
Practice immutable array operations by building a task list.
Requirements
- Add trimmed, non-empty tasks from a controlled form.
- Clear the input after a successful addition.
- Toggle completion without mutating a task object.
- Remove tasks by stable ID.
- Display an empty state when appropriate.