I removed the payload only from the inline view with the ds alias.  Payload is still available in the query result as r.payload (none of the columns in ds are used in the query result).

It looks like the join between r and ds is used so that payload does not have to be part of the group-by query used to create ds.  ds has the max version, then the join on r is used to get the payload for that version.

Unless I misunderstand something shouldn't it be ok to remove payload from ds?