Does the client have to know the server’s id for gets and patches?

Hi
If I understand the standard correctly then the id is always the id of the resource on the server?

Or can it be the id on the client?

What I’d really like to do is allow the client to send its own identifier for the resource in all calls and have the server use that (and a client identifier) to uniquely identify the resource on the server?

Is that totally going against the spec? I see it is possible in a post by using lid, but that for a get or patch the client must provide the id?

Thanks

Dave