Good job with this plugin. It seems a lot easier to handle than other solutions available.
I do have a few questions though:
Thank you for you questions. That's nice to have such a level of discussion.
1. Is there any reason why pets are identified by their names? This seems very inconvenient due to a) localization and b) custom pet names. I usually give my pets names once they reach level 25. But if I do, the available tactics are no longer recognized. Same goes for Attack Names. I don't know why you chose to go this route. Maybe you could elaborate. As a fellow code monkey, I am curious about this.
I would not say using names is inconvenient, rather "it creates problems". I've chosen it for two reasons:
1. It is actually convenient - for a human. Just imagine that all these tables are filled with numbers, not names. It would be a terrible thing to understand, support and maintain.
2. I've already had all these tables from my MyPetBattles days coded in this way, just not in C#, but in Lua. Translation was done by applying some editor script

Note that 1 is actually a stronger reason for me. I would rather translate numbers into strings than to have maintain these tables in numbers. As you can already see maintaining these tables will be much longer work than creating a code - people are already asking about their missing pets.
And to be honest I have completely missed these localization and personal names problem. That seems not a big deal though: we'll just add kind of reverse dictionary that will give us an id based on a name. Just need to nurture the thing in the mind for a while and it should work in no time. Drawback will be some time needed at startup to load a dictionary, but no delays will be noticed in the work cycle.
2. Are you planning to implement a feature where we can build teams and implement tactics specifically for daily pet trainers, the garrison daily and the beasts of fable? Enemies like Archimedes are perfect to level a huge amount of pets in a short time and the fight has very few variables in it. It should be possible to use your existing ability behavior system to implement this.
Yes, I am planning to automate the things that bore me when I do them manually. And creating a team (once again and once again!) for a specific opponent is surely boring (strangely, fighting itself does not look so boring yet - will we be stealing the frill of the battle from the users?).
I am still not sure about the design yet: where to put the code for team selection and fighting, but I am more and more inclined that profile is the right place: coordinates of the opponent, team - which is dependent on the pets you have, tactics - which is dependent on the team, all seem to be grouped together rather naturally. And there are ways to invoke C# compiler for parts of a profile, so probably we can escape the need to write an interpreter.
Are you sure Garrison elite fights are a proper way to level pets? I've tried to do this manually but have noticed diminishing returns. May be just me. Well, Pandaria is still there.
3. Is there a way to make the bot use pet treats if I have them in my inventory?
In my life I choose to stoically ignore them rather than to get used to the convenience and be frustrated when it's gone. (Safari Hat is another thing, it does not end

).
But why not. Are you sure though that the hassle of "where is that f... checkbox that I need to press" is worth it? Spartan GUI has its advantages.