Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions spec/Section 6 -- Execution.md
Original file line number Diff line number Diff line change
Expand Up @@ -736,8 +736,8 @@ Fields may include arguments which are provided to the underlying runtime in
order to correctly produce a value. These arguments are defined by the field in
the type system to have a specific input type.

At each argument position in an operation may be a literal {Value}, or a
{Variable} to be provided at runtime.
Each argument position in an operation may be a literal {Value}, or a {Variable}
to be provided at runtime.
Comment on lines +739 to +740
Copy link
Copy Markdown
Member

@benjie benjie May 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking at Martin's proposed edit... what is an "argument position in an executable document"? To me it's where an argument is passed to a field in a document (which is irrespective of the actual type system - the field doesn't even need to exist in the schema):

query {
  __nonsenseDoesNotExistField__(arg: >>>THIS IS AN ARGUMENT POSITION IN AN EXECUTABLE DOCUMENT<<<<)
}

As such, it can only be a literal or a variable... there's no other option. So I think Martin's second option can be simplified a bit, it's informational (contains) rather than normative (may):

Each argument position in an executable document may be contains a literal {Value}, or a {Variable}
to be provided at runtime. Arguments may also be missing if their definition allows it.

However, I feel like the "argument position in an executable document", whilst much more concrete, is potentially meaning something different than that which the previous text implied, so I think Martin's additional clarifying sentence might be needed - but we shouldn't rely on validation here ("if their definition allows it") since execution is allowed to be performed without validation. A "for example" might be a softer way of writing this:

Suggested change
Each argument position in an operation may be a literal {Value}, or a {Variable}
to be provided at runtime.
Each argument position in an executable document contains a literal {Value}, or
a {Variable} to be provided at runtime. Some arguments may not be represented
in the document, for example if they are optional.


CoerceArgumentValues(objectType, field, variableValues):

Expand Down