Hopefully the arg4 in UNIT_SPELLCAST_* is "target", which people have been asking for ages.
I can hope, anyway.
Its a number type.. from what I've seen it's a "global" counter that starts at 1 and counts upwards by 1 for every time any "UNIT_SPELLCAST_*" event fires and persists through different play sessions (even between characters and servers), and only resets by quitting the game
So this 400000 value is important... is it perhaps something related to the cap on how many you can have (I read it was supposed to be 4000 at the start?).
I think somewhere in the GetCurrencyListInfo return values, the currency ID is supposed to be there, but it isn't yet. Without that, it's tricky to correlate the two different sources of information.
EDIT: Also an interesting thing to note: Archaeology uses the currency system too. It doesn't show up in the currency list (some internal flag you can't query hides them), but you can query the races and get their currency ID to pass to GetCurrencyInfo(). What's even more puzzling is that Archaeology doesn't even use GetCurrencyInfo for anything. It's just kinda there.