Listing all entity properties identifying unique entity instance?
I have always assumed that when you do

$entity_info = entity_get_info('foo');
$table = $entity_info['base table'];
$schema = drupal_get_schema($table);


and then examine $schema['primary key'] and $schema['unique keys'] you get a tuple to represent uniqueness.

I would also assume that you can do

$entity_info = entity_get_info('foo');
$keys = $entity_info['entity keys'];


and this would represent a tuple to uniquely identify an entity.  However, this gets a little confusing.  For example, if you have UUID installed, then there is a uuid and revision uuid in the results.  These are not needed within one system, but will guarantee uniqueness between systems.