type Query { field(arg: Boolean): Int fragField: Int inlineField: Int } fragment fragment on Query { fragField @include(if: $indirectDirective) } query($fieldDirective: Boolean = true, $fragDirective: Boolean = false, $inlineDirective: Boolean = false, $argDirective: Boolean = false, $indirectDirective: Boolean = false) { field(arg: $argDirective) @skip(if: $fieldDirective) ...fragment @include(if: $fragDirective) ... @skip(if: $inlineDirective) { inlineField } }