directive @DirectiveA(a1: String!, a2: Int!) on SCALAR | ENUM | ENUM_VALUE

directive @DirectiveB(a1: Int!) on INPUT_FIELD_DEFINITION | INPUT_OBJECT

directive @DirectiveC(
  arg: MyInput!
) on FIELD_DEFINITION | OBJECT | ARGUMENT_DEFINITION

scalar MyScalar @DirectiveA

enum MyEnum @DirectiveA {
  EnumA @DirectiveA
}

input MyInput @DirectiveB {
  field: String @DirectiveB
}

type MyType @DirectiveC {
  field(a1: Int @DirectiveC): String @DirectiveC
}

type Query {
  name: String
}
