Well, as I said, I'm still new to Galaxy, so maybe I'm not understanding this fully, but I'm still looking at this function thinking "What can I do with this?", and "How can I do it?"
I'm sure it would be clearer if I had the XML in front of me, but my quest for Galaxy knowledge has not yet led me across the "here's how you get the XML" path.
As far as what the program does, I was thinking of basically making this...I don't know...like the trigger editor, sort of? I didn't have a completely clear UI idea yet, but something along the lines of having a dropdown listing the things you can do:
Swap an ability
Move command card Button Location
So you'd, say, pick a source / target (one of the Catalog libraries), maybe specify a little further (for example, picking the "Unit" library and then specifying the unit you intend to modify), and then another selection box would allow you to input the data. The app could even read the XML to interpret what the settings currently are, and attempt to serve as a rudimentary validator.
In making that list, a question popped into my mind, which I present more as a rhetorical example seeking validation that I am, in fact, simply missing something rather than detailed answers.
In order to change the Zealot's ability from Charge to Blink, I would call: CatalogFieldValueSet (c_gameCatalogUnit, "Zealot", "AbilArray.Link, 1, "Blink"); - Sholdak
This allows us to change an ability. Can abilities be added? In the XML, it's just adding another line, but code works a bit differently. If I could add a line using this, would I simply increment the array index? Or would I use a function like push or pop or...?
As I describe this, I realize that a well-documented tutorial (akin to all the others I've been gleaning knowledge from in the API Tutorial area) would likely work quite well. If this is the case, I'm certainly all for it, but unfortunately under qualified for that particular task. Talk about the blind leading the blind.
There are some pretty severe limitations to CatalogFieldValueSet unfortunately. There hasn't been any documentation listing what those are yet, but for example things like changing Command Cards on the fly doesn't seem to be possible in most circumstances. I need to get around to updating the tutorial with that info.
If you are talking about adding a user-friendly wrapper to the function, best way to go about that is just making a Trigger Library. Many of the existing Blizzard trigger actions related to data actually use CatalogFieldValueGet/Set internally.