Finding the right level of abstraction for pointing devices is much harder. Leaving off light pens, which need to be built in anyway, my thought is just to send movement vectors using arbitrary units. The unit should be adjustable by twiddling something on the device. Rather than plugging the pointing device into the computer, it might be better to plug it into the keyboard. Thus, the computer can't tell whether the user used vector keys or a mouse to send a movement code.
Many programs read up descriptions of the input devices.
For example, in UNIX part of a terminal description is how many function keys exist, the codes they emit, and what string describes them to the user. However, there's no need for a user to be constrained by some programmer's idea of the user's equipment or usage of it. A programmable keyboard with a mouse plugged into it should be able to emulate anything intended to point and generate text and function codes.