Тут всё сложнее, api, common, common-client
(1-я группа) могут не быть связаны даже с кубами т.к. по идее это абстрактный код(проще - основа) который должен использоваться "платформенным кодом"(в данном случае в таком виде выступают forge, neoforge, fabric, paper, quilt
(2-я группа).
Вся репа поделена на такие маленькие суб-проекты, все проекты из 2 группы так или иначе подтягивают к себе в зависимости суб-проекты из 1-й группы. При сборке через Gradle используется не только суб-проект который ты выбрал для сборки, но и суб-проекты которые обозначены как зависимости (в случае с Fabric это будут fabric, api, common, common-client
). Но и тут есть нюанс, в случае этого мода, fabric
- по сути универсал, потому-что код должен работать как на клиенте так и на сервере судя по тому что там написано.
Поэтому копировать по хорошему нужно всё что указано в зависимостях, т.е. код из fabric, api, common, common-client
. НО, если есть желание делать чисто, можно по идее не копировать common
, а после - еще вручную подчистить серверный код который пришёл из суб-проекта fabric
.