Почти все операции будут с issues. И агрегат Project стал бы "завистливым" классом, в основном вызывающим методы у issue. Агрегат же Заказ - вполне себе важная единица и операции в основном идут с ним.
Вероятно, то же самое можно сказать и про твой агрегат Игра(там операции всегда идут с игроками, полем, и т.д.). Но тут я менее уверен.
Рассуждая про технические ограничения, я забыл упомянуть самый важный момент, что в aggregate root должны быть только те данные, что необходимы для транзакционных изменений, т.е. для игры это очевидно: некоторые действия затрагивают сразу всех игроков одновременно (например, все платят какому-то игроку; или какой-то игрок проигрывает после действия другого игрока), поэтому тут требуется обеспечить транзакционную целостность действий в игре. По крайней мере, это справедливо для большинства настольных и карточных игр.
И на самом деле с Project и Issues здесь тоже можно придумать правила, которые требовали бы транзакционную целостность. К примеру, ты не можешь закрыть задачу, если задача блокируется другой задачей, которая ещё не закрыта (немного спорная логика, но она имеет место быть в некоторых issue tracker'ах). То есть, в рамках Project вроде бы существует инвариант «задача может быть закрытой тогда и только тогда, когда не существует открытых задач, блокирующих первую». Но мне кажется достаточно очевидно, что это всё равно не стоит того, чтобы делать подобный aggregate root, потому что это технически проблематично. Поэтому тут нужны альтернативные варианты. Скорее всего даже нет ничего страшного в том, что может произойти ситуация, когда задача-таки закроется, даже если будет открытая блокирующая (race condition).
А вот твой аргумент с «завистью» я не понял.