10. In a computing environment, a system, comprising: a store operable to provide access to a grammar, the grammar defining a format for serializing an object, the grammar representing rules for serializing the object that preserve embedded objects and relationships in a serialized representation of the object, the grammar defining a header and a payload for serializing the object, the header including metadata of the grammar the metadata usable in de-serializing objects serialized using the grammar, the grammar having rules for de-serializing the objects based on a difference between a minor version of a first serialization engine to serialize the object and a minor version of a first de-serialization engine to de-serialize the object and a difference between a major version of the first serialization engine to serialize the object and a major version of the first de-serialization engine to de-serialize the object, the payload including an identifier of each descendent object of the object, the payload further including reference data for each reference, if any, included in the object, the reference data indicating relationships of the object, the reference data potentially referring to one or more of: an object type supported by a scripting environment in which the object resides, an object type supported by a host environment of the scripting environment, and a foreign object type that is defined outside of both the scripting environment and the host environment; and the first serialization engine operable to use the grammar to serialize the object into serialized data.
10. In a computing environment, a system, comprising: a store operable to provide access to a grammar, the grammar defining a format for serializing an object, the grammar representing rules for serializing the object that preserve embedded objects and relationships in a serialized representation of the object, the grammar defining a header and a payload for serializing the object, the header including metadata of the grammar the metadata usable in de-serializing objects serialized using the grammar, the grammar having rules for de-serializing the objects based on a difference between a minor version of a first serialization engine to serialize the object and a minor version of a first de-serialization engine to de-serialize the object and a difference between a major version of the first serialization engine to serialize the object and a major version of the first de-serialization engine to de-serialize the object, the payload including an identifier of each descendent object of the object, the payload further including reference data for each reference, if any, included in the object, the reference data indicating relationships of the object, the reference data potentially referring to one or more of: an object type supported by a scripting environment in which the object resides, an object type supported by a host environment of the scripting environment, and a foreign object type that is defined outside of both the scripting environment and the host environment; and the first serialization engine operable to use the grammar to serialize the object into serialized data. 12. The system of claim 10 , further comprising a second serialization engine operable to use the grammar to serialize host objects that are referenced by the object.