code: function () {
              /*  determine parameters  */
              var params = $cs.params("link", arguments, {
                  name:   {         def: "default" },
                  scope:  {         def: null      },
                  target: { pos: 0, req: true      },
                  socket: { pos: 1, req: true      },
                  spool:  {         def: null      }
              });
  
              /*  create a socket and pass-through the
                  plug/unplug operations to the target  */
              return this.socket({
                  name:   params.name,
                  scope:  params.scope,
                  spool:  params.spool,
                  ctx:    {},
                  plug:   function (obj) {
                      var id = _cs.annotation(obj, "link");
                      if (id !== null)
                          throw _cs.exception("link:plug: cannot plug, you have to unplug first");
                      id = $cs(params.target).plug({
                          name:      params.socket,
                          object:    obj,
                          targeting: true
                      });
                      _cs.annotation(obj, "link", id);
                  },
                  unplug: function (obj) {
                      var id = _cs.annotation(obj, "link");
                      if (id === null)
                          throw _cs.exception("link:unplug: cannot unplug, you have to plug first");
                      $cs(params.target).unplug({
                          id: id,
                          targeting: true
                      });
                      _cs.annotation(obj, "link", null);
                  }
              });
          }
docs: /*  create a linking/pass-through socket