SMSG_CAST_RESULT and SMSG_CAST_FAILED append the SpellFocusObject id on
requires-spell-focus failures, but the parsers stopped at the result
byte, leaving only a generic 'Requires spell focus' message. Read the
trailing id on all three expansion parsers, resolve it through
SpellFocusObject.dbc, and report 'Requires Cooking Fire nearby.' /
'Requires Anvil nearby.' etc., with a clearer fallback when the id is
unavailable.