I feel like there's something off here -- you typically want to provide a schema for what's in the cursor, and this doesn't support that.  It's also not clear to me how you actually validate this, since to validate a cursor I think you actually need to wrap the object and validate on derefs?