The rewrite’s rule for @condition inheritance (downward inheritance, explicit methods survive) is stated in Argument Resolution. It is not the rule the retired graphitron-parent generator implemented. That generator no longer ships, so this page is history rather than reference: it records what the delta was and why the rewrite chose to diverge, for a reader migrating a schema written against the old behaviour.

The links below point into the retired generator’s own sources on main.

The rule above (downward inheritance, explicit methods survive) is the rule the rewrite will enforce. It is NOT the rule the legacy generator implements. Reviewers and implementers should know the delta before signing off on §Override propagation.

Legacy schema, withListedInputConditions (schema.graphqls):

type Query {
  customer(in: [CustomerInput]):         CustomerTable @condition(..., method: "customerJOOQRecordList")
  customerOverride(in: [CustomerInput]): CustomerTable @condition(..., method: "customerJOOQRecordList", override: true)
}
input CustomerInput @table(name: "CUSTOMER") {
  id:    ID!     @condition(..., method: "customerString")
  first: String! @field(name: "FIRST_NAME")
                 @condition(..., method: "customerString", override: true)
}

Legacy output, same fixture’s expected/QueryDBQueries.java:

The legacy rule is total-replace: an outer override: true substitutes its own explicit method for everything below it, regardless of whether inner fields carry their own explicit @condition methods. The rewrite’s proposed rule preserves inner explicit methods across the boundary. That is a deliberate divergence from legacy.

Rationale for diverging. The legacy behavior couples implicit conditions and explicit methods into a single "outer owns everything" toggle, which means a schema author can’t declaratively compose an outer replacement condition with inner explicit side-conditions. The rewrite treats each level’s override flag as affecting only that level’s implicit condition, which lets @condition(override: true) replace the implicit condition without also silencing explicit input-field conditions written by the schema author.

Divergence-pinning tests. Two execution tests pin the rewrite against legacy’s total-replace rule: inputFieldCondition_tableInput_outerOverride_preservesInnerExplicitMethod (outer @condition(override: true) over a filter input whose field carries its own @condition; the test name’s tableInput is historical) and inputFieldCondition_plainInput_outerOverride_preservesInnerExplicitMethod (same shape against a second filter input; alf production shape). Both generate a predicate conjunction that evaluates to an empty result set; a regression to the legacy "outer owns everything" rule would drop the inner predicate and return rows, breaking the tests by name.

If a downstream consumer relies on the legacy coupling, handle it with an author-side schema edit (drop the inner @condition methods that should not run under outer override) or promote to its own backlog item. The rewrite does not reproduce total-replace.

Audit of legacy override fixtures. Three additional fixtures under queries/fetch/records/ were inspected to confirm the 6-row truth table is complete:

All three fall within the 6-row table.