[Weather]
day = ((today|tomorrow){day} | ( ){day:today})
how is the weather <day>
you can also do things like this if i remeber correctly:
[Weather]
day = ((today|tomorrow| :today){day}
or what i often when i have multiple words for one option which also should be the drfault option.
[Weather]
day = ((today| this day| ):today | tomorrow){day}
I dont have acess to my setup at the moment so i could not test the first 2 variants. You can always use the web interface to test just the intent recognition.
Yup, and that is where is belongs IMHO.
The sentences should reflect what you actually say and not add functionality.
So, when no day is spoken, let the intent handler decide what to do with it and keep the spoken sentence clean.
That way, you can add extra thing to the intenthandler when no day is spoken, a 4 day forecast or something like that.