Current list syntax:
or with optional separator after last element
It is not very explicit about what happens. Semicolon reuse is so heavy, that using it here makes me think it is nested sequence rule or something. It doesn't convey they idea of separator explicitly, especially that it will have very different type in AST. Use of question mark, which is "optional" operator, is good but its placement is unclear. There is no other place where "?" is used without a rule before it.
This tells that there are many Properties (Property* part), but somehow augmented.
Can extract to separate rule with clean syntax
Other potential benefits:
- building list-driven additive and multiplicative expressions like this (+2 means 2 or more):