Ordering completion arguments
If you want to support two completion blocks (closures), one for success and one for failure, I suggest ordering them so that the positive one is the last and, if applicable, also make error handling optional:
func execute(_ arguments: Any,
failure…