original_string: private function createAggregateChild(
          Child $meta,
          Str $nodeName,
          MapInterface $data,
          Query $query
      ): Query {
          $relationshipName = $nodeName
              ->append('_')
              ->append($meta->relationship()->property());
          $endNodeName = $relationshipName
              ->append('_')
              ->append($meta->relationship()->childProperty());
          $endNodeProperties = $this->buildProperties(
              $meta->properties(),
              $endNodeParamKey = $endNodeName->append('_props')
          );
          $relationshipProperties = $this->buildProperties(
              $meta->relationship()->properties(),
              $relationshipParamKey = $relationshipName->append('_props')
          );
  
          return $query
              ->create((string) $nodeName)
              ->linkedTo(
                  (string) $endNodeName,
                  $meta->labels()->toPrimitive()
              )
              ->withProperties($endNodeProperties->reduce(
                  [],
                  static function(array $carry, string $property, string $cypher): array {
                      $carry[$property] = $cypher;
  
                      return $carry;
                  }
              ))
              ->withParameter(
                  (string) $endNodeParamKey,
                  $data
                      ->get($meta->relationship()->childProperty())
                      ->reduce(
                          [],
                          static function(array $carry, string $key, $value): array {
                              $carry[$key] = $value;
  
                              return $carry;
                          }
                      )
              )
              ->through(
                  (string) $meta->relationship()->type(),
                  (string) $relationshipName,
                  'left'
              )
              ->withProperties($relationshipProperties->reduce(
                  [],
                  static function(array $carry, string $property, string $cypher): array {
                      $carry[$property] = $cypher;
  
                      return $carry;
                  }
              ))
              ->withParameter(
                  (string) $relationshipParamKey,
                  $data
                      ->remove($meta->relationship()->childProperty())
                      ->reduce(
                          [],
                          static function(array $carry, string $key, $value): array {
                              $carry[$key] = $value;
  
                              return $carry;
                          }
                      )
              );
      }
code: private function createAggregateChild(
          Child $meta,
          Str $nodeName,
          MapInterface $data,
          Query $query
      ): Query {
          $relationshipName = $nodeName
              ->append('_')
              ->append($meta->relationship()->property());
          $endNodeName = $relationshipName
              ->append('_')
              ->append($meta->relationship()->childProperty());
          $endNodeProperties = $this->buildProperties(
              $meta->properties(),
              $endNodeParamKey = $endNodeName->append('_props')
          );
          $relationshipProperties = $this->buildProperties(
              $meta->relationship()->properties(),
              $relationshipParamKey = $relationshipName->append('_props')
          );
  
          return $query
              ->create((string) $nodeName)
              ->linkedTo(
                  (string) $endNodeName,
                  $meta->labels()->toPrimitive()
              )
              ->withProperties($endNodeProperties->reduce(
                  [],
                  static function(array $carry, string $property, string $cypher): array {
                      $carry[$property] = $cypher;
  
                      return $carry;
                  }
              ))
              ->withParameter(
                  (string) $endNodeParamKey,
                  $data
                      ->get($meta->relationship()->childProperty())
                      ->reduce(
                          [],
                          static function(array $carry, string $key, $value): array {
                              $carry[$key] = $value;
  
                              return $carry;
                          }
                      )
              )
              ->through(
                  (string) $meta->relationship()->type(),
                  (string) $relationshipName,
                  'left'
              )
              ->withProperties($relationshipProperties->reduce(
                  [],
                  static function(array $carry, string $property, string $cypher): array {
                      $carry[$property] = $cypher;
  
                      return $carry;
                  }
              ))
              ->withParameter(
                  (string) $relationshipParamKey,
                  $data
                      ->remove($meta->relationship()->childProperty())
                      ->reduce(
                          [],
                          static function(array $carry, string $key, $value): array {
                              $carry[$key] = $value;
  
                              return $carry;
                          }
                      )
              );
      }
code_tokens: private function createAggregateChild ( Child $ meta , Str $ nodeName , MapInterface $ data , Query $ query ) : Query { $ relationshipName = $ nodeName -> append ( '_' ) -> append ( $ meta -> relationship ( ) -> property ( ) ) ; $ endNodeName = $ relationshipName -> append ( '_' ) -> append ( $ meta -> relationship ( ) -> childProperty ( ) ) ; $ endNodeProperties = $ this -> buildProperties ( $ meta -> properties ( ) , $ endNodeParamKey = $ endNodeName -> append ( '_props' ) ) ; $ relationshipProperties = $ this -> buildProperties ( $ meta -> relationship ( ) -> properties ( ) , $ relationshipParamKey = $ relationshipName -> append ( '_props' ) ) ; return $ query -> create ( ( string ) $ nodeName ) -> linkedTo ( ( string ) $ endNodeName , $ meta -> labels ( ) -> toPrimitive ( ) ) -> withProperties ( $ endNodeProperties -> reduce ( [ ] , static function ( array $ carry , string $ property , string $ cypher ) : array { $ carry [ $ property ] = $ cypher ; return $ carry ; } ) ) -> withParameter ( ( string ) $ endNodeParamKey , $ data -> get ( $ meta -> relationship ( ) -> childProperty ( ) ) -> reduce ( [ ] , static function ( array $ carry , string $ key , $ value ) : array { $ carry [ $ key ] = $ value ; return $ carry ; } ) ) -> through ( ( string ) $ meta -> relationship ( ) -> type ( ) , ( string ) $ relationshipName , 'left' ) -> withProperties ( $ relationshipProperties -> reduce ( [ ] , static function ( array $ carry , string $ property , string $ cypher ) : array { $ carry [ $ property ] = $ cypher ; return $ carry ; } ) ) -> withParameter ( ( string ) $ relationshipParamKey , $ data -> remove ( $ meta -> relationship ( ) -> childProperty ( ) ) -> reduce ( [ ] , static function ( array $ carry , string $ key , $ value ) : array { $ carry [ $ key ] = $ value ; return $ carry ; } ) ) ; }
docstring: Add the cypher clause to build the relationship and the node corresponding
  to a child of the aggregate
  
  @param MapInterface<string, mixed> $data
docstring_tokens: Add the cypher clause to build the relationship and the node corresponding to a child of the aggregate