As you described, the current implementation fails to meet the production requirements. It's not just about "just to increase the level of abstraction". In my opinion, design and quality of the code are very important in software engineering. Therefore, we should discuss and improve these codes as soon as possible. At the same time, I am enthusiastic about adding more feature support in the future. Also there are some bugs in the implementation as mentioned in the documentation. Lastly, I suggest that you carefully review the improvement suggestions outlined in the document, then we can discuss specific API design.
Best Wishes, Zhimin Li