pub fn write_todos(state: &TodoState, todos: Vec<Todo>) -> ToolResult<String>
Writes/replaces the todo list with new items.
Validates that all todos have non-empty id and content.