Most endpoints in WSAPI will return objects that include a variety of attributes that contain unique data such as CreationDate, ObjectID, and ObjectUUID. Objects from the ProjectPermission endpoint, however, contain none of those.
Why doesn't the ProjectPermission endpoint include attributes that can uniquely identify each ProjectPermission?
The ProjectPermission endpoint is comprised of data from two tables using a database view. Therefore the results being returned by the ProjectPermission endpoint do not exist as data in a singular table and they do not have any uniquely identifying information.
While not a complete replacement for an ObjectID, the CustomObjectID field forms a primary key since it is comprised of the User's object ID, the project's object ID and the permission for that project. The breakdown of the CustomObjectID is as follows:
213628258u 29460514p 1 |__________|_________|_| UserID ProjectID Permission