This creates more boilerplate code, but it's easier to extend, it's follows the same structure as the mesh extraction, and it's more aligned to planned future performance improvements. Pull Request: https://projects.blender.org/blender/blender/pulls/132866