removes complications when srcpath/dstpath or child/parent directories have naming collisions (in particular the json directories).
HARD vs SOFT assertions were never very well defined or supported. Currently they just imply a level of functionality that isn't present; it's better to remove them instead of expending the effort at this point.
This will allow more natural checking of hashes and json as they expand.