Some event consumers like catalogs and caches may need more information to
update themselves in an efficient manner. The necessary information can be
provided as optional modification descriptions of the ObjectModifiedEvent.

This says that we modified something via IFile. Note that an interface is an
acceptable description. In fact, we might allow pretty much anything as a
description and it depends on your needs what kind of descriptions you use.

zope.lifecycleevent Changelog

4.0.3 (2013-09-12)

Dropped the dependency on zope.component as the interface and
implementation of ObjectEvent is now in zope.interface.
Retained the dependency for the tests.

3.7.0 (2011-03-17)

Added convenience functions to parallel zope.lifecycleevent.modified
for the other events defined in this package.

3.6.2 (2010-09-25)

Added not declared, but needed test dependency on zope.component [test].

3.6.1 (2010-04-30)

Removed dependency on undeclared zope.testing.doctest.

3.6.0 (2009-12-29)

Refactor tests to loose zope.annotation and zope.dublincore as dependencies.

3.5.2 (2009-05-17)

IObjectMovedEvent, IObjectAddedEvent,
IObjectRemovedEvent interfaces and ObjectMovedEvent,
ObjectAddedEvent and ObjectRemovedEvent classes copied here
from zope.container (plus tests). The intent is to allow packages
that rely on these interfaces or the event classes to rely on
zope.lifecycleevent (which has few dependencies) instead of
zope.container (which has many).