For a HAL representation to be valid, it should contain a self link. One thing I'd love to do, but haven't figured out how yet, is to give the top-level serializer access to the request object and automatically build the self link. That way, if some request comes in with query parameters (say for filtering), the representation's self link can be the actual path that would fetch the same stuff, rather than some generalized path. Anyone have any ideas on that?

On a related note: The above implies different serializers for a resource when it's the top level of a response versus when it's embedded in another resource. I'd love to figure out a good way to automate that away, but I'm not solid on my thoughts yet, so I'd love to hear any bright ideas others have.