$sub_value ) { if ( null === $sub_value ) { continue; } $sub_path = $path . '.' . $key; if ( ! array_key_exists( $key, $resolved_fields ) ) { $dropped[] = $sub_path; continue; } $dropped = array_merge( $dropped, self::find( $sub_value, $resolved_fields[ $key ], $sub_path ) ); } return $dropped; } private static function unwrap( $value ) { return self::is_envelope( $value ) ? $value['value'] : $value; } private static function is_envelope( $value ): bool { return is_array( $value ) && isset( $value['$$type'] ) && array_key_exists( 'value', $value ); } private static function is_object_map( $value ): bool { return is_array( $value ) && ! empty( $value ) && ! wp_is_numeric_array( $value ); } }