`extend()` does a loop. Whereas `Object.create()` only creates a prototype reference reference. If we want to make the semantics of the user-supplied `formats` that they are locked down, then we'd need to do a recursive `extend()`.