Ooh this looks interesting. I feel like I've re-invented totally half-arsed versions of this a few times because the json api approach just didn't sit right with me, but I've never had the vocabulary to clearly state why and what the alternative could/should be.