it's basically sending the description of the API to the client but dynamically.
usually you say "menupoint n -> form x -> endpoint a" and this is in your application.
here you call for example "user/save/{id}" and it returns you the links to the user profile or other points "where you can go to next". This has the advantage that if an endpoint address (uri) changes the client will have that information provided from the backend.
drawback is ofc a more complex logic in the client.