Yeah, generally client side has no idea of what the next id should be, so when you create a model and save it, the server should return an id to update the model with. If you want you can randomly generate one, but that's probably not a real life scenario (unless a model only ever lives client side)
The issue you're facing is when you try and save and item it doesn't know how. You need to define an adapter to use for the Item model so it knows where/how to save that model type.