Oklab’s profile does not have good support for 8-bit integers and 16-bit integers because unit8 and unit16 do not have negative numbers and cannot support a and b well
From what I know from my own attempts at playing with colors, the problem is not really about negative numbers, its about memory constraints. I mean if you only need 128 negative numbers, then you can emulate it with uint8, there will be just one extra step in many operations.
Also, anything above 8-bit starts to become problematic with huge images with several layers, unless you have a very beefy machine. This is one major reason why I prefer to stay with 8 bit mode.
Then there are several blend modes which are available only if you are working with rgb/srgb, and they can often prove quite useful in many situations. Combine this with the above, I’d personally prefer to work with 8-bit srgb images when doing painting. I cannot say about photography retouching workflows as I dont have much experience with that, but I have heard that they have their own set of complications and oklab may not be a very good choice for that.
This is why, atleast as per my workflow, blend modes solve all those problems. An oklab-normal blend mode can be used for most tasks. And additional blend modes like oklab-color or oklab-value may also be useful if used with brushes.
The color picker which I wrote for myself using oklch doesnt allow picking values which give invalid rgb result. But because 8-bit is constrained with memory, there are some “holes” in the colorspace, especially in the deep blue region.
So far I have not found that anomaly for some other color, only in that very narrow region of pure blue hue.
The point is, this is one problem that can be easily solved by using 16-bit or 32-bit floating point, but then again, even if your machine does have memory and cpu to handle that or if you dont usually work with large images/layers, most monitors work in srgb colorspace only, so they still wont be able to display the color which oklab is pointing to when its value is falling inside those gaps. Or atleast thats what my understanding is, I might be wrong.