docs: def register_target(self, target: Target):
          """Register a `target` instance in this build context.
  
          A registered target is saved in the `targets` map and in the
          `targets_by_module` map, but is not added to the target graph until
          target extraction is completed (thread safety considerations).
          """
          if target.name in self.targets:
              first = self.targets[target.name]
              raise NameError(
                  'Target with name "{0.name}" ({0.builder_name} from module '
                  '"{1}") already exists - defined first as '
                  '{2.builder_name} in module "{3}"'.format(
                      target, split_build_module(target.name),
                      first, split_build_module(first.name)))
          self.targets[target.name] = target
          self.targets_by_module[split_build_module(target.name)].add(
              target.name)