At least remote identifier, version. Then optimistic handshakes can fix fields, non-optimistic can leave variable, if identifiers are unimportant they can be auto-selected.