Не могли бы вы объяснить, почему, если входной аргумент мутации является объектом, он должен быть типа ввода? Я думаю, что гораздо проще просто повторно использовать тип без предоставления идентификатора.
Например:
type Sample {
id: String
name: String
}
input SampleInput {
name: String
}
type RootMutation {
addSample(sample: Sample): Sample # <-- instead of it should be
addSample(sample: SampleInput): Sample
}
Это нормально для небольшого объекта, но когда у вас есть много объектов с 10 + свойствами в схеме, которые станут обузой.