With separate mappings out of the way, it's much closer now to what we will need for user handles. There are some unneeded differences, through. The assumption that shared mapping is an array of fixed size objects is something that would need to be changed to objects like windows. While things like an allocator may be changed later, I'd suggest to keep the layout private to server at this point by replacing object index with a mapping offset.