How do I write core for an abandoned board?

It depends on your goal. If you want to solve it for everyone you have to go for (2). If you want it to work for you go for (3). Once you master (3) you need not care about updates anymore. It is pretty simple to adapt almost any library once you understand the guts of the system. (3) helps to learn this.