interface Contained:IRObject {
attribute RepositoryId id;
attribute Identifier name;
attribute VersionSpec version;
readonly attribute Container defined_in;
readonly attribute ScopedName absolute_name;
readonly attribute Repository containing_repository;
struct Description {
DefinitionKind kind;
any value;
};
Description describe( );
void move(in Container new_container,
in Identifier new_name,
in VersionSpec new_version);
};