docs: def reqPnLSingle(
              self, account: str, modelCode: str, conId: int) -> PnLSingle:
          """
          Start a subscription for profit and loss events for single positions.
  
          Returns a :class:`.PnLSingle` object that is kept live updated.
          The result can also be queried from :meth:`.pnlSingle`.
  
          https://interactivebrokers.github.io/tws-api/pnl.html
  
          Args:
              account: Subscribe to this account.
              modelCode: Filter for this account model.
              conId: Filter for this contract ID.
          """
          key = (account, modelCode, conId)
          assert key not in self.wrapper.pnlSingleKey2ReqId
          reqId = self.client.getReqId()
          self.wrapper.pnlSingleKey2ReqId[key] = reqId
          pnlSingle = PnLSingle(account, modelCode, conId)
          self.wrapper.pnlSingles[reqId] = pnlSingle
          self.client.reqPnLSingle(reqId, account, modelCode, conId)
          return pnlSingle