Forms with dynamic entry of multiple fields

I have been looking through the form documentation and user questions. I see questions around this topic. But no clear answers.

It is an extremely common pattern to need to enter multiple rows of data for some parts of a form. An invoice is a classic example.

I only see various hacks. Is this just unsupported in Camunda and it must be handled in a custom application? We could put some javascript to add and remove rows. But HTML supports this via the name attribute and adding [] to the name. Then most web frameworks will translate that to an array. But I think that is unsupported.

image

OK digging in further I see it should be handled via deserialization of JSON into Java objects. I see this example: https://github.com/camunda/camunda-bpm-examples/blob/master/usertask/task-form-embedded-serialized-java-object/src/main/webapp/forms/provide-customer-data.html