Note: This is not a project idea but I wasnt sure where else to put it and just wanted to get it down,
It seems to me that our conversations keep coming back to wanting / needing some kind of abstraction layer.
All of these libraries are kinda bad IMO. Even Adafruit ones are always make me say "WTF" at least once every time I use one,
Since we are wanting to support all different kinds of HW but we also want to keep our "business logic" as portable and modular as possible I think abstraction layers make sense.
So in practice, that means we would come up with our own HW agnostic display API. One that can theoretically do anything we need but doesnt directly talk to any HW,
Whenever we write display code we will write it to the spec of our own API instead of the specific HW.
Then we will make HW abstractions for each device we want to use. Which translates our custom API calls to the device specific code as needed,
It is obviously slightly more upfront work for each new display driver we want to support but I think its the only realistic way to actually reuse code across even slightly different driver,