A phonetic rule, rather than a grammatical one. Russian devoices voiced consonants at the end of words, like in Polish, Dutch, German etc. So д, г, ж, etc. are said т, к, ш etc. as well.
When it's inflected so there's a vowel after the root, like хлебы (plural) or хлеба (genitive), the б is voiced.
There is - it's explained in the notes although! Unfortunately only on the PC version. It shouldn't be the end of the world if you do keep voicing consonants at the ends of words: your accent will just sound a bit strange.
It's a bit like how the letter "l" in most English accents has a different pronunciation at the end of a word, but most natives don't notice, and nor does it impair intelligibility to use just one "l" sound, as many second language learners do.
Terrible pronuntiation. Listen here: https://forvo.com/word/%D1%85%D0%BB%D0%B5%D0%B1/#ru
Are voiced stops (б, д, г) devoiced (п, т, к) when they're at the end of a word like in German? I could swear that I'm hearing this pronounced as хлеп, and that I'm hearing город being pronounced like горот. This would be a really easy thing for me to remember, because I'm already used to voiced stops behaving this way in German, but I just want to know if it's really doing that, or if it's all in my head.