A few comments on the script:
Is it possible to read ALL default properties from a particular class? If so, this script could have variables
var() class<ZoneInfo> InitialClass TriggerClass ;
and the mapper could specify which two zones the thing toggles between.
Would the script be clearer if it used two states, each with an implementation of Trigger() ? ie state InitialClass and State TriggerClass?