GraphQLはクライアント側の関心事の定義に振り切って使っている。
サーバー側のモデルの設計はドメインロジックの整理に振り切る。
基本はドメインオブジェクトとGraphQLのスキーマ定義を直接マッピング。
両者の間に妥協しがたい不整合が見つかったら、中間にビューとモデルの変換層を追加する。
DTOを必ず使うという設計方針もあるかもしれないが、基本はnaked objectパターン、つまり、ドメインオブジェクトを直接ビューにマッピングする。
ビュー用にDTOを定義し、ドメインオブジェクトとの変換器を追加するのは、必要最小限にする。使い分けの表明はコメントじゃなくアノテーションかなあ。
なるほど