Signed-off-by: Shivam Mittal <email@example.com>
I think this needs a lot more discussion. Before accepting any change like this, I'd like to get consensus on the end goal of this project and the rough steps to get there.
As it stands now, I don't believe this is a good change. It breaks down one of the few layering invariants we had (SB API uses everything else, but not vice versa) without any clear benefit. If the goal is to rewrite the commands on top of the SB API, then I think it should be possible to write command that _only_ use the SB API, and impossible (or at least very hard) to accidentally use the private api. This (and the follow-up patch demonstrates that) makes it very easy to mix SB and private objects within the same command, which doesn't clean up anything -- it just adds to the confusion.