* Support nested member-access in filter expressions (#392)
Function-based identity keys returning dot-separated paths now produce
nested dot-notation (@.positionNumber.value) per RFC 9535 JSONPath.
String-based keys with dots still use bracket notation (@['c.d']).
Adds embeddedKeyIsPath flag to IChange. Bumps to 4.10.3.
* Support nested property resolution in apply/revert, review fixes (#392)
- Add resolveProperty for dot-separated path traversal in apply/revert
- Fix empty array edge case: use oldObj[0] fallback for key resolution
- Add NESTED_PATH_RE validation for isPath filter keys
- Add apply + atomize→unatomize→apply round-trip test
* Address review: isPath-aware apply/revert, falsy value fix, unatomize flag
- resolveProperty only traverses nested paths when isPath=true
- Thread isPath through removeKey/applyLeafChange/applyArrayChange
- Fix falsy identity values (0, false, '') in indexOfItemInArray
- Set embeddedKeyIsPath in unatomizeChangeset for dot-notation keys
- Add literal dot-key apply round-trip test
* Null guard in resolveProperty, thread isPath through revert path
* Fix escaped quotes in unatomizeChangeset regex, add round-trip tests
* Use NESTED_PATH_RE to gate embeddedKeyIsPath, add edge case test
* Require dot in key for embeddedKeyIsPath in unatomizeChangeset
* Guard resolveProperty against non-string keys (FunctionKey)