The issue is with the way that the subsystem for handling past tenses works.
Specifically, the problem message is objecting to the use of the noun
in the noun was not blessed
.
To expand on Zed’s answer: Every time the update chronological records rule
is run (at the end of the turn sequence rulebook
by default), the truth states for the was
condition are updated. The was
condition in the report
rule would basically just pull this truth state from storage; it would not look at the world state. (You can consider the storage of chronological records as being logged by condition ID. It would take a lot more storage to reflect the entire world state of the previous turn.) Were the compiler to accept the noun was blessed
, there is the strong possibility of a mismatch between the value of the noun
at two different times: when the chronological records are being updated and when the report
rule is being evaluated for applicability.
The value of the noun
may not be what you expect at the end of the turn sequence (i.e. when chronological records are updated). For example, if a missing noun was supplied, it will be dropped and returned to nothing
after the action is processed. In that case the condition would evaluate true when the report
rule is being processed, but it would not reflect the intended meaning, because the value stored would be based on whether or not nothing is not blessed
was true when the record was last updated. Likewise, if the action applies to multiple objects, only the last object will be the noun
at the end of the turn sequence. In that case, it would be a matter of happenstance whether the value of the noun
were the same at both the point when the chronological record was updated and the point when the was
condition was being evaluated.
Action variables (like temporary variables) are also prohibited from use in was
conditions; they won’t be treated as in scope at the end of the turn sequence because action processing is already over.