When defining the state history attribute it is now also possible to define a 'carbon copy' attribute; that is a boolean attribute of the referenced state object that specifies if 'carbon copies' should be generated every time an object change status. E.g.:
<xs:complexType name="folderObject" abstract="true" gs:stateAttr="folderRef:createCarbon" >
. . .
</xs:complexType>
declares ‘createCarbon’ as the carbon copy attribute for ‘folderObject’ objects: 'createCarbon' is a boolean attribute of folder (the object referenced by 'folderRef'), each time an object change state (i.e. it is moved to a different folder) the system checks 'createCarbon' in the source folder, and if it is true creates a copy of the object.
This copy is stored as an old versions tagged with a special code identifying it as a carbon copy instead than a normal version.
The standard schema contains the 'createCarbon' attribute to folder, and declares it as the carbon copy attribute for all folderObject-derived object (as in the example above):
This is defined in the schema and the configuration files
Config\Global\Admin4Config.xml
Config\Strings\BaseStrings.en.xml