In a recent game we had this situation.
Wizard with 2 lives lands on another player, also with 2 lives. The Wizard declares psychic combat and casts Soul Shatter to do 2 lives of damage.
The other character has Fiery Retribution and casts it to do 2 lives of damage back.
The Wizard players firmly believes that Soul Shatter is outside of combat and therefore the other player was not 'defeated' and cannot cast Fiery Retribution. The second player believes that an attack must be declared and Soul Shatter is cast as part of the Cast Spells step and even though it ends there, it was still an attack and they can cast Fiery Retribution.
Who's correct?
Thank you in advance.