A method of flattening an object. A flattened object is one with the same attributes in all the instances for which it is flattened, and where there are no attributes in the instances, the attributes are all in the flattened object.
The ability to flatten an object is a huge one, but the fact remains that the object isn’t flattened, and the best way to flatten an object is to flatten it. You can flatten it with any library that you want, and this is how you do it. If you don’t have one, you can’t flatten it.