Added expression to virtual definition

Part 1 of the windowing PR saga. It begins here...

This is largely a naming/semantics question more than any real functionality yet.
I guess I'm being overly-cautious with the `optional` here. Also happy just to make it mandatory and assume we haven't imported any virtual features in any production instances?