In terms of natives my #1 and #2 wishes would be:
1) Provide decent ways to sync data, such that you could sync save strings and such without relying on, admittedly excellent and impressive engineering, but high-overhead and super hacky user mode solutions. Also, some built in throttles mean that using some of the current custom syncing libraries inexpertly or to sync more data than expected can lead to lag and/or game freeze for literally a minute+. (I have a particular, specific, syncing prototype that got dropped in mind, not wild rumor, thus leading to autoload functionality being delayed on a certain map by several years)
A decent start would be making SynceStoredString and friends actually work, but perhaps taking inspiration from one of the current jass libs for a new api would yield better results.
2) A proper local storage api so that we would not have to abuse preload natives as much. Currently the api is overly-powerful for the purpose of simply storing a small bit of (save) data locally, and blizzard has been paching it (read: breaking naive usages) way too frequently lately. A simple and secure-by-design approach that has a stable api and does not needlessly expose arbitrary filesystem traversal would be nice.
Nice to haves:
3) Proper hashtables. (current implementations have most draconian api ever seen, need special handling from user in case 2 non-integer semantic keys have the same hash)
4) Removing non-orthogonalities:
- allow us to have code arrays. Yes i understand why they did it this way, but its not impossible, simply extra work, and would make certain code oth easier and more efficient to write.
- Allow us to put data structures (arrays, hashtables, etc..) inside other data structures. This would naturally allow for multi-dimensional array syntax (At east for usage, but thats the one that really matters). Also, mappings from string or units to hashtables or arrays making certain metadata tracking easier.
5) Make calling a native JASS2 function a natural GUI action such that I could create a library in JASS (for flexibility or efficiency) and then expose it to users with different expertise for safe and familiar usage. Currently having to use triggers is unnatural and actually directly invoking functions from GUI is prone to lead to errors that can be annoying to track down if not caught immediately.