This is the API we discussed in the recent Nautilus listview call.
Ping to @antoniof and @coreyberla for a review of the API and its documentation (I'd also be happy if you want to test it, but I'm more interested in making sure the API makes sense).
Note that this builds on the changes in !5701 (merged) which already has some focus changes that we may have touched on in the call.