The idea here is that instead of having data with links you follow, you send a query to a service for all of the data the client wants and the shape of it. The target here is mobile clients which have latency issues. The idea is not new, as they point out, they are more or less turning services into something more like a database with a query language.
I’m not sure I buy the claim made later in that all reshaping code on the client disappears. Does that mean the backend will have to support all forms of reshaping? What If I want to display names as “<FirstInitial>. <LastName>”? What happens with very complicated UI with a lot of shared data between them? It’s unclear how well this scales to much larger applications. What about queries with dependencies on previous queries? All of this an be encoded somehow but that turns into a lot of complexity, and complexity is the enemy of security.
I think errors are also a very interesting question in this case. What does it mean when subtrees fail? What do you do? How do you display it? What does the query executor do? Continue with other requests or fail?