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