feat: items() return a dict only with values that's been set (not NoneType) and str for Key objects