I think this is probably the best approach -- we're experiencing a disconnect between the identifier name used for routing vs the entity vs a database column; these may all be different, but for the purposes of the API are connected. Having a way to distinguish them in the configuration and the GUI would solve these issues.

To be clear: the changes would encompass zf-hal, zf-rest, zf-apigility, and zf-apigility-admin, as well as the module you've created for Doctrine.