@classmethod
def _get_attribute_list(cls):
    """Calculate the list of all attributes of this structure."""
    attrs = []
    for base in cls.__bases__:
        try:
            attrs.extend(base._get_attribute_list())
        except AttributeError:
            pass
    attrs.extend(cls._attrs)
    return attrs
