Because the type of data a JSON contains is generally pretty simple, I think we could remove the dependencies on ActiveModel and ActiveSupport.
Currently we use ActiveModel to cast a value to the defined type, but we only support string, integers, decimals and other classes that include JsonPathAttribute. So I think we could simplify JsonPathAttribute::Cast and remove the dependency on ActiveModel all together.
ActiveSupport is used for HashWithIndifferentAccess, but I'm not sure if we strictly need it.