Catching as many pokémon as possible (ie. completing the pokédex, ie. the list of descriptions of all pokémon), and trading pokémon between two players have been staples of the games since the very beginning. And of course leveling up your "alpha team" of pokémon. It can be quite addictive and rewarding.
In the first generations, however, there was a problem: You could not transfer your pokémon from a game of one generation to a game of the next (eg. you couldn't transfer, at least not officially, pokémon from a first-generation game to a second generation game). This even though there wouldn't have been a technical reason that would have stopped that from happening. (Every pokémon game fully supports all pokémon of all previous generations.) This meant that you couldn't transfer your level 100 shiny ultra-rare legendary powerhouse from one game to the next, even though you spent so much time catching and leveling it up.
Generation IV (the first generation for the Nintendo DS) changed this, by making use of the fact that the first Nintendo DS had both a normal DS cartridge slot and a GameBoy Advance (which is what generation III ran on) cartridge slot. This meant that if you owned games from both generations, you could transfer your pokémon from the generation III game cartridge to your generation IV game, by connecting both cartridges to the console. (Even then it wasn't made a completely straightforward process. There was a mini-game involved to do the transfer, and you were limited to transferring 6 pokémon per day. Nevertheless, you could still do it.)
Transferring from generation IV to generation V (both being DS games) was more difficult, though. Impossible for most people. This is because it required having two DS consoles, and transferring them using their IR link. Unless you had a friend with another DS, you just couldn't transfer.
Transferring from generation V (DS) to generation VI (3DS) is much easier, though: Once again you only need one single 3DS device. You simply install the "poké bank" application, connect your gen V game to the console, transfer your pokémon to the "bank", then connect your gen VI game to the console, and transfer the pokémon from the bank to the game. Easy peasy. Only one 3DS needed, no hassle.
Except for one big thing: It's not free.
You see, in order to use poké bank, you need to purchase a yearly subscription. Sure, the price is relatively small (only $5 per year), but still...
I'm not saying they don't have the right to charge money for its usage, but come on. The games themselves are not exactly cheap (and unlike with PC and desktop console games, 3DS games tend to not to drop in price almost at all, even after many years). I have already bought not one but two of the games (rather obviously, else this transfer thing wouldn't make sense), neither of which was exactly cheap, and I would just want to transfer some data from one game to the other, and you are charging me for that?
They don't offer any cheaper shorter-term alternatives either. It's a full year or nothing. Yet I would only need this for something like an hour or less. The rest would be useless to me.
This is an online service (the pokémon data is actually transferred to an online server, rather than kept locally, which allows also to transfer them from one game to another without the need of two devices), and the yearly cost is for maintenance. However, this whole thing could support purely local transfers, without sending the data to an online server. But no, it doesn't support that.
Moreover, this is in fact the only possible way to transfer from gen V to gen VI. There is no other way (not even if you have two consoles.) Gen VI games simply do not support transferring directly from gen V games (eg. using the IR link.) Trading is also not possible between generations (and has never been. This makes sense because older generations do not support the new pokémon in newer generations, so it would be unworkable.)
As said, the games are not exactly cheap, and I have already purchased two of them. Why can't this be a simple free add-on? (At least support local transfers for free, even if an online service would be commercial.)