Design a shared todo-list product where users can create lists, add and edit tasks, and invite other users to collaborate with viewer, editor, or admin permissions.
The basic CRUD operations are straightforward until multiple collaborators modify the same list concurrently. One person may rename a task while another marks it complete, two editors may update the same task at nearly the same time, and permission changes may race with an in-flight mutation.