skip to content

questions

4

Why do schema linters require a reason on every @deprecated field?

level: middleimportance: should knowfreq 46%

basics

~10 s

Because the specification makes the argument optional and defaults it to "No longer supported", which tells a consumer nothing. The string is the only migration instruction that reaches clients, and it travels through introspection.

open as a page

Why does a schema lint rule flag the nullable item type in a [Leg] field?

level: middleimportance: should knowfreq 39%

basics

~20 s

Because [Leg] permits a null in every element slot, and a null element has no natural meaning in a collection. Every consumer must branch on a hole nobody put there on purpose, so linters push for [Leg!].

open as a page

Which schema lint rules cannot be judged from a schema diff alone?

level: seniorimportance: nice to knowfreq 22%

basics

~20 s

Rules that are properties of the whole schema graph, above all reachability from the root operation types. A change can strand a type without touching that type's own definition, so a diff-scoped run never looks at it.

open as a page