Basically the `id` property that's passed around may be any php type. My custom implementations often return an array, because I need a couple of fields to identify the correct item.

The id is only passed around everywhere, never looking at the value. Except in the backend classes, so yea.. `mixed` is sensible here.