Оно выглядит слишком сложна(
validate отвечает просто за то, чтобы использовать аргументы, его не трогай
post_init собирает из хендлера нужные аргументы в переменную required_permissions. Например, если ты ввёл user_can_delete_messages=True, то он будет содержать этот аргумент.
_get_chat_member возвращает мембера нужного чата. Сначала он проверяет, есть ли закэшированный объект в message.conf, а если его нет, то отправляет запрос и кэширует. Таким образом, запрос отсылается только один раз за апдейт.
check уже непосредственно регулирует доступ к хендлеру. Если он возвращает False, хендлер пропускается. Если возвращает True, то хендлер запускается.
Если вернуть словарь, то он попадёт в хендлер, в нашем случае это ChatMember