minor comments (nothing blocking this for dev):
- needless dependency on JsonLd package in this code - you have the capability in the base Newtonsoft package
- using Newtonsoft Json you can use something like prop.ToObject<DataTime>() rather than DateTime.Parse
- we are using standard UTC DateTime format strings in the Catalog. We should do the same everywhere. (In other words we should regard the serialized format of the data (and data) as part of the public surface area of the code - and be consistent across the product.) We should check what we are getting here.
- in future revs the whole "durable cursor" object could be JSON-LD. The point of that being that it makes it easy to have additional structured metadata hanging around.