There are a lot of navigation rules that are independent of speech. Many more can be made independent and also avoid repetition. E.g., there are 6 rules that have
- test:
- if: "$NavCommand = 'MoveNext'"
then: [{t: "move"}]
- else_if: "$NavCommand = 'ReadNext'"
then: [{t: "read"}]
else: [{t: "describe"}]
A new (language-specific) rule can be created and then these could defer to it by setting some env variable to trigger what to say/act as params. The rules containing the above can then be language independent. The language rules would -include the base navigation rules.
Other than learning the trick to do this, this is a good first project rule.