Hi,
I just read p0249r0 but I might have missed a few points.
I must first say that I am happy that the input subject have been worked on. I tried to write something
similar but I am still not satisfied (and very frustrated) with my researches on the subject so far.
Here are a few first questions and opinions:
1. I do not think that asking implementers to use inheritance here will be useful a good thing
for a lot of reasons (mainly intrusivity, future-proofness, composition and potential optimizations).
Consider using type-erasing types instead of inheritance (see "concept based polymorphism" if you don't already know about it, or similar techniques).
2. Did you consider separating the proposal into a low-level system event library and a higher level event/signal/observer library which would work well with the first library?
3. I'm not sure having "for 2D graphics" is a good point for an input system.
In particular today, we are exposed to an explosing varierty of input systems for different usages in a lot of different domains.
Focusing on interractive 2d graphics only might give a useful interface for some stuffs but certainly not for input acquisition in general.
Here's for now.
Joël Lamotte