title: What is clientChangeTokenData in CKModifyRecordsOperation?
body: <p>I am working on CloudKit sync in my app ("Tiny data, all devices" model, with a custom zone in the private database). </p>
  
  <p><code>CKModifyRecordsOperation</code> contains <code>clientChangeTokenData</code> property of <code>NSData</code> type which is described in the docs as follows:</p>
  
  <blockquote>
    <p>When you modify records from a fetch operation, specify a client-generated data token using this property to indicate which version of the record you last modified. Compare the data token you supplied to the data token in the next record fetch to confirm the server has successfully received the device’s last modify request.</p>
  </blockquote>
  
  <p>I don't get why I should bother given that with each request, I get a completion block which tells me whether the server has successfully received my request. Why do I need to manually compare this client token?</p>
  
  <p>Is specifying <code>clientChangeTokenData</code> required to handle my use case correctly? I track local data changes and push everything in the queue on each data change. Remote changes are tracked via zone subscription.</p>
  
  <p>If it is required, how do I generate this token correctly given that I have all kinds of record changes in my <code>CKModifyRecordsOperation</code> (my API usage aims for batch operations). What is the general workflow here? </p>
  
  <p>Thank you.</p>