There are Action behaviors that have not been prototyped. In this situation we generate a custom Action that bypasses the BasePrototype and directly implements the IAction Interface. This Action needs to implement all the methods from the interface and manually spawn/destroy prefabs and any other behavior the Action needs.
When we have a non-prototyped action, we have to focus mostly on Initialize and Perform.
In an Action that implements the IAction interface we have to do manually all the work BasePrototype does. For example, the Initialize of this action needs to set the event manager and spawn the prefabs needed.
Additionally, perform will destroy prefabs and clear the event manager manually.
It is important to consider all these manually setting s since nothing is automated by a non-prototyped Action.