Overall, I think it looks great! I don't see any regressions from current functionality, and I see how this would give us many more capabilities going forward. I had a few thoughts while reading through the proposal:
- I would suggest including (>=[version string]) and (<=[version string]) too, which in my experience are used more often than the straight > and < versions
- SAY seems gratuitously different from most scripting languages. ECHO, PRINT, or LOG would seem more natural
- on that note, most scripting languages use '#' as a comment character (perl, python, bash, etc.), which would be even more concise than '//'
- the usual complement of boolean operators would be nice for the conditional expressions: IF (fcom AND NOT better_cities) THEN ...
Also, re: the potential future features listed on the proposal page. I had some of those same ideas for the Installers tab in Wrye Bash (e.g. dynamic dependency anolysis and automatic consistency checks for installed files). Maybe we should coordinate our plans?