PreCondition : object
For the most part, the relative order of two preconditions is arbitrary. In some unusual cases, though, the order is important, such as when applying one precondition can destroy the conditions that the other would try to create but not vice versa. When the order doesn't matter, this can be left at the default setting.
If allowImplicit is nil, an implicit command may not be attempted. In this case, if the condition is not met, we must simply report a failure and use 'exit' to terminate the command.
'obj' is the object being checked. Note that because this is called during verification, the explicitly passed-in object must be used in the check rather than the current object in the global current action.