overlapping_inlined = [
0 //
0, uint //
0, uint, text
]
Will not work as some variants are subsets of other ones so will incorrectly parse as one of the other variants without checking the array/map length here.
When you do this not inlined like:
overlapping0 = [0]
overlapping1 = [0, uint]
overlapping2 = [0, uint, text]
overlapping = overlapping0 / overlapping1 / overlapping2
there is no problem as this is taken care of in the dedicated structs' deserializes.