Unless I sit down and fight with the code I am not sure off the top of my head. I think the original plan was to implement JSON-API and HAL in the core, and have them error if certain properties are not available.

Whatever happens it cannot be directly tied to the transformer. A transformer is just the data structure, which could be implemented for multiple different types of "thing". A user transformer could be "friends" and "owners" for example.

It sounds like we're on the same page though. The resource can handle it once created, with setResourceKey or something. By default it can be `"data"`, or it could be null and the JSON-API serializer can shout at you if its not set.

I think I prefer the shouting approach, as its less silent hidden magic. 

What do you think?