Glad we are having a discussion to better realise what we want out of the data.

Quote Originally Posted by adrianlegg View Post
regarding ward location grouping
Far better would be to just have a per hero list : wards {is_obs_or_sentry, time, x,y,} and then You can parse it Yourself whether it was "recommended" by any means, or not. (Just do Your own work by finding "zones", no dev should do it for You)
While it is true that one could go parse the map and figure out where each X,Y is... it would be computationally expensive to do this on millions of matches. I can see some neat things you could do with it though. However, what happens when future maps are made or existing ones modified? You would need to re-do the entire parsing again. I am also unsure how easily player metrics based on warding position could be calculated given just co-ordinates. I think that there should be some degree of facilitation by the API.

A properly design map would hopefully have many regions in it (Jungle1_Radiant, Jungle2_Radiant, Radiant_Ancient, ...). It would just be a matter of having an enum set and expanding as necessary.

Quote Originally Posted by adrianlegg View Post
regarding hero kill breakdown
I'd much more prefer this simple format: { hero_id; killed_by_player; time }
Enough to track:
- number of double/triple kills
- longest streaks
- ending someone streaks
With perhaps 2 special values for neutrals/roshan perhaps instead of player. (denies would be other teammates so it fits)

Having "dmg dealt", as in "Kill Cam" window, gives low quality of information (for statistic purposes). If You go into a fight, lose 70% hp go jungle, then 1min later, some invi guy deals 200dmg and takes the kill, You would have only 200dmg then.
While an immediate application would be to track streaks etc, why not expose the same data we get in game too? Too much data in an API can't be bad, as long as it is segregated enough that only the people that want it can get it.

What happens if someone wants to track how well the team works together?

What about heroes that are suited to kill-stealing?

What happens if you want to be able to explore how the teams fair in team fights; starting with initiation all the way to kill?

By your own specification, the kill would say X dmg by creeps and 200 by bounty hunter.

Quote Originally Posted by adrianlegg View Post
regarding spell usage breakdown
While in theory this sounds nice, in practice without context those means little.
How would You track did Echo Slam failed, or hit hero?
What would You gain from non-dmg skills?
On their own, they are poor information, which takes a lot of space.
I took Dota Replay Manager and parsed example replay. Sum of all abilities used is 1251. Even with {ability_id, time} it's like 10-12 bytes => 12kB of almost-useless data.
If You don't have hero position in time and/or combatlog, You might as well just have something like : echo_slam:5times. But then again what's the point.
Even just a breakdown usage of the number of times the spells were cast (including items) would have direct relevance. Icing on the cake is to get a summary of effect too. (I.E. a cumulative count of total damage inflicted, total stun time, etc.)

From a pure player evaluation perspective, if you end up only casting Echo Slam 5 times in a game... this is useful to know. Via the API, people could be trying to build a more complete picture of how players are reacting/playing with characters. If we did not need this data, then surely we could be just as happy only knowing win rates?

Quote Originally Posted by adrianlegg View Post
- Damage received
- Total damage to creeps
- Total hits (not missed)

Those I find low priority (nothing personal, I just don't need them at all):
And that is where constructive discussion ended.

I am sure you can appreciate that some characters can be more of a "tank". Understanding how much so is useful.

Some characters are suited to pushing, and not so much teamfights (Brood, NP, etc.)

Figuring out things like LH to hits on creeps is useful for determining player skill. (Especially if broken down into 10min blocks so we can see early game)

Figuring out things like number of hits on other players is useful too.

I don't understand the mentality of trying to separate things that I want from the API from things everyone will want... only to shoot down ideas that in the end only you might not like and others would.

Thoughts on your requests. Some of those seem quite useful. However, I won't shoot down the ideas I think are stupid, as that is not what a wishlist is about.