code: private static SpecTopic transformSpecTopicWithoutTypeCheck(final CSNodeWrapper node, final Map<Integer, Node> nodes,
              final Map<String, SpecTopic> targetTopics, final List<CSNodeWrapper> relationshipFromNodes) {
          final SpecTopic specTopic = new SpecTopic(node.getEntityId(), node.getTitle());
  
          // Basic data
          specTopic.setRevision(node.getEntityRevision());
          specTopic.setConditionStatement(node.getCondition());
          specTopic.setTargetId(node.getTargetId());
          specTopic.setUniqueId(node.getId() == null ? null : node.getId().toString());
  
          // Set the fixed url properties
          applyFixedURLs(node, specTopic);
  
          // Collect any relationships for processing after everything is transformed
          if (node.getRelatedToNodes() != null && node.getRelatedToNodes().getItems() != null && !node.getRelatedToNodes().getItems()
                  .isEmpty()) {
              relationshipFromNodes.add(node);
          }
  
          // Add the node to the list of processed nodes so that the relationships can be added once everything is processed
          nodes.put(node.getId(), specTopic);
  
          // If there is a target add it to the list
          if (node.getTargetId() != null) {
              targetTopics.put(node.getTargetId(), specTopic);
          }
  
          return specTopic;
      }
docs: Transform a Topic CSNode entity object into a SpecTopic Object that can be added to a Content Specification.
  
  @param node                  The CSNode entity object to be transformed.
  @param nodes                 A mapping of node entity ids to their transformed counterparts.
  @param targetTopics          A mapping of target ids to SpecTopics.
  @param relationshipFromNodes A list of CSNode entities that have relationships.
  @return The transformed SpecTopic entity.