anchor.diff:  If an expected property on a request object holds a nested json object in turn, hydra-java will render it following a proposal from https://github.com/HydraCG/Specifications/issues/26[Hydra-CG Issue 26] using http://schema.org/rangeIncludes[schema:rangeIncludes]. The fact that this issue is not resolved yet is the main reason why hydra-java 0.2.0 is an alpha release. So be especially wary that changes are likely for the way hydra-java prescribes nested properties.
   
   
  -
   === Rendering other media types (from V. 0.2.0-alpha8)
   
   Clients should be able to request a media-type they understand by means of content negotiation. Following this principle, the spring-hateoas-ext package provides the foundation to render hypermedia types which describe expected requests - not only as json-ld, but also as other media types. 
  
positive.code: 
          public void setEventStatus(EventStatusType eventStatus) {
              this.eventStatus = eventStatus;
          }
      }
  
      @Controller
      @RequestMapping("/events")
      public class EventController {
  
          @RequestMapping(value = "/{eventId}", method = RequestMethod.GET)
          public @ResponseBody Resource<Event> getEvent(@PathVariable Integer eventId) {
              // get the event from some backend, then:
              Resource<Event> eventResource = new Resource<Event>(event);
              eventResource.add(linkTo(methodOn(EventController.class)
                      .getEvent(event.id))
                  .and(linkTo(methodOn(EventController.class)
                      .updateEvent(event.id, event)))
                  .and(linkTo(methodOn(EventController.class)
                      .deleteEvent(event.id)))
                  .withSelfRel());
              return eventResource;
          }
  
          @RequestMapping(value = "/{eventId}", method = RequestMethod.GET)
          public @ResponseBody Resource<Event> getEvent(@PathVariable Integer eventId) {
              ...
          }
  
  
          @RequestMapping(value = "/{eventId}", method = RequestMethod.PUT)
          public ResponseEntity<Void> updateEvent(@PathVariable int eventId, @RequestBody Event event) {
              ...
          }
  
          @RequestMapping(value = "/{eventId}", method = RequestMethod.DELETE)
          public ResponseEntity<Void> deleteEvent(@PathVariable int eventId) {
              ...
          }
      }
  
  
negative.code: [source, Java]
  ----
  
      import static de.escalon.hypermedia.spring.AffordanceBuilder.linkTo;
      import static de.escalon.hypermedia.spring.AffordanceBuilder.methodOn;
  
      @Controller
      @RequestMapping("/events")
      public class EventController {
  
          @RequestMapping(value = "/{eventId}", method = RequestMethod.GET)
          public @ResponseBody Resource<Event> getEvent(@PathVariable Integer eventId) {
              // get the event from some backend, then:
              Resource<Event> eventResource = new Resource<Event>(event);
  
              // using AffordanceBuilder.linkTo and AffordanceBuilder.methodOn
              // instead of ControllerLinkBuilder methods
              eventResource.add(linkTo(methodOn(EventController.class)
                      .getEvent(event.id))
                  .and(linkTo(methodOn(EventController.class) // 2nd action with .and
                      .updateEvent(event.id, event)))
                  .and(linkTo(methodOn(EventController.class) // 3rd action with .and
                      .deleteEvent(event.id)))
                  .withSelfRel());
              return eventResource;
          }
  
          @RequestMapping(value = "/{eventId}", method = RequestMethod.GET)
          public @ResponseBody Resource<Event> getEvent(@PathVariable Integer eventId) {
              ...
          }
  
  
          @RequestMapping(value = "/{eventId}", method = RequestMethod.PUT)
          public ResponseEntity<Void> updateEvent(@PathVariable int eventId, @RequestBody Event event) {
              ...
          }
  
          @RequestMapping(value = "/{eventId}", method = RequestMethod.DELETE)
          public ResponseEntity<Void> deleteEvent(@PathVariable int eventId) {
              ...
          }
      }
  
      public class Event {
          public final int id;
          public final String performer;
  