Как мне разработать подключаемую систему очков и значков, которую легко включать и выключать, а также легко превратить в отдельный модуль?
После многих проб и ошибок я пришел к выводу, что баллы и значки просто слишком вплетены в единую бизнес-логику приложения и не могут быть экстернализованы простым способом (многие правила включают понимание основной структуры приложения, что делает вещи уже довольно спаренный)
В настоящее время я делаю все просто - я экстернализовал всю бизнес-логику (проверка, постоянство, геймификация, уведомления) в методах класса обслуживания. Однако эти методы уже стали довольно загроможденными, и, боюсь, довольно взаимосвязанными. Нет простого способа просто отключить любую из базовых систем.