No, it's true, that is not the best way to receive that information for modding. At the time I reported it, I was simply concerned that it falsified data. It could have been used to this effect though, in absence of more convenient ways.
The optimal solution, I think, would be adding an additional parameter of type EngagementResultForFleetAPI to the method FleetEventListener#reportBattleOccurred, containing the obfuscated object with filled fields backing accessors getDestroyed and getDisabled, as it exists - but is inaccessible - immediately after a battle.
... Err, I think I posted that in the API request thread, but I might have forgotten. ... Argh, checking my posting history, I have indeed forgotten to! Rectifying that now. ~~ Thank you for the heads-up.