TLDR: This is a specific question about best approach to coding a common need in Python, of creating non-flat \'types\' - one that IMHO (as 3 year intermediate level python