DQL "Func" keyword redundant?

I believe if the query parser works the same way in parsing this part of the DQL syntax like the GraphQL syntax then this whole group of params gets converted into an object with their specific keys.

{
  name(func: has(name)) { uid }
  firstName(func: has(name), first: 1) { uid }
  firstFiveNamesOrdered(func: has(name), first: 5, orderasc: name) { uid }
}

would get parsed something like:

{
  operations: {
    name: {
      func: { has: "name" },
      fields: ["guid"]
    },
    firstName: {
      func: { has: "name" },
      first: 1,
      fields: ["guid"]
    },
    firstFIveNamesOrdered: {
      fund: { has: "name" },
      first: 5,
      orderasc: "name"
      fields: ["guid"]
    }
  }
}

With this understanding, it may be possible to provide the same query with a different order or params:

{
  n(first: 1, func: has(name)) { uid }
}

And without the func parameter name, it would be really hard to get the function and check that one and only one function was provided.

This is in line with how GraphQL syntax works. For example you cannot have an input without labeling that input. {getPost("0x2"){id}} is not valid, but {getPost(id:"0x2"){id}} is valid because the input is labeled.