keys = $keys; $this->key_generator = $key_generator; } public function transform( $value, Props_Resolver_Context $context ) { $values = Collection::make( $this->keys ) ->filter( fn ( $key ) => isset( $value[ $key ] ) ) ->map_with_keys( function( $key ) use ( $value, $context ) { $new_key = call_user_func( $this->key_generator, $context->get_key(), $key ); $new_value = $value[ $key ]; return [ $new_key => $new_value ]; } ) ->all(); return Multi_Props::generate( $values ); } }