EntityActionPointer InterfaceActionFactory::factory(EntityActionType type,
                                                    const QUuid& id,
                                                    EntityItemPointer ownerEntity,
                                                    QVariantMap arguments) {
    EntityActionPointer action = interfaceActionFactory(type, id, ownerEntity);
    if (action) {
        bool ok = action->updateArguments(arguments);
        if (ok) {
            if (action->lifetimeIsOver()) {
                return nullptr;
            }
            return action;
        }
    }
    return nullptr;
}