Single defer, key enumeration, non-domain-specific toJSON