settings v2: almost there
settings v2: support null default values in StructPtr()