It seems like I managed to solve it.
All the chain of properties now capturing a generic value type T.
And finally the most inner associative array will handle the
implicit cast.
Maybe that extra implicit () got confused when the types are
same, but the aliases to those types are different. o.O
Now both expressions are working.
samples[key].mainPicture().width
samples[key].mainPicture.width
Side effect: The internal chaos behind this also got rediced by
25% as I had to refactor to find the root of the problem :D