Cases to consider:
-empty string (currently a path with 0 property components)
-index operators, e.g. "foo.baz" (currently not supported)
Value at Path:
-empty string path (the value is the model itself)
-non-object model (valid, if path is non-empty, value is undefined)
Regarding index operators, how about a syntax like:
A path segment preceded by a # could then be run through parseInt, and if the result is NaN an exception would be thrown regarding the bad segment. Otherwise, the returned Integer value would take the place of the String value of that segment in the path.
@michaelsbradleyjr Actually, in JS indexes are just property names. JS syntax disallows naked integers as identifiers (e.g. foo.0), but ChangeSummary is fine with it. IOW, All of the following already works as path specifications:
I think this is mostly implemented now, but maybe we still need a grammar "spec"?