You can't filter by user criteria, because we only provide access to the data the client has for the item, and not the results you see on the gui itself (which is a different system.) API support for that is on the todo list for API improvements, but for now, the affix system allows you to filter by implicit and explicit mods the item has. For example, take a read
over this. So, you can't know the attacks per second of a weapon yet or the actual displayed damage, just the mods themselves.
The system looks complex, because the item system in Path of Exile is pretty complex.

We had two choices, either implement a small limited set of functionality to filter things, or give people total access to everything. The whole setup of the Buddybots is to provide an API to the game and allow users to get access to just about everything the client does, so we went with the latter. Unfortunately, providing an easy means to work with all of the PoE data is pretty complex, because of how things work in the game.
While it is possible to make some things a lot easier to use, and it while it would be nice, there have been, and still are far more important things that dev time has to be dedicated to instead. As a result, we give users the access to the data, and provide some basic functionality to interact with it in our code, so it's "good enough", but if you want to make the most out of it or want something to be a lot better, it's up to you to take things to the next level, so to speak. We'll do our best to make sure devs have access to the data they need.
As for your other question, just check the previously linked reply. You basically check the suffix/prefix mods and use the stat name that correlates with it. This is covered in the guide as well, as there is some small naming convention changes, since the names in C# cannot have spaces or special characters. If you have any other questions ,feel free to ask.