hello has a default, but hello seems to be required in the constructor args if it has a default. Is this a bug or am I missing something? Also, is there a way to mark the whole struct as optional such that {} wouldn't need to be passed in at all?