Any Edit Preservation Design Issue
G3D::Any was designed to make it easy to mix GUI-based property edits with manual edits to a configuration file. For example, most Any -> Specification constructors provide default values and Any stores the comments from the original file so that serialization produces exactly the file that was deserialized.
The catch is that when you do something like: Any -> Texture::Specification you don't have the original Any anymore. So if you invoke Texture::Specification -> Any, it gives you a new Any, not your original one.
This makes it hard to take advantage of comment-preserving and other Any features to make an editor that preserves hand-modification of the scene files. We could make all of the specification fields protected by accessors and store the original Any inside the Specification, thus guaranteeing perfect reconstruction. That would make the Specification classes a little more annoying to implement and to use. Having them secretly store their Any and do some kind of diff at serialize time would be easier to use but much more painful and error-prone to implement.