code: public static function isObject($value)
      {
          if (is_array($value)) {
              return !$value || array_keys($value)[0] !== 0;
          }
  
          // Handle array-like values. Must be empty or offset 0 does not exist
          return $value instanceof \Countable && $value instanceof \ArrayAccess
              ? count($value) == 0 || !$value->offsetExists(0)
              : $value instanceof \stdClass || $value instanceof JmesPathableObjectInterface;
      }
docs: Determine if the provided value is a JMESPath compatible object.
  
  @param mixed $value
  
  @return bool