This interface can be implemented by components that participate in system target configuration by either participating in a state component
or by having a state component depend. See the system states documentation.
If so, before use of a dependent component, the prepare() method of all dependency components will be called.
Calling calling prepare() on a component that supports this interface will always traverse through all dependency components and invoke prepare(), if available.