Bitcoin Core hard-codes the coinbase transaction to one output coinbaseTx.vout.resize(1)
as defined in src/node/miner.cpp
// Create coinbase transaction.
CMutableTransaction coinbaseTx;
coinbaseTx.vin.resize(1);
coinbaseTx.vin[0].prevout.SetNull();
****************************************************
//Referring to the line of code below
coinbaseTx.vout.resize(1);
*****************************************************
coinbaseTx.vout[0].scriptPubKey = scriptPubKeyIn;
coinbaseTx.vout[0].nValue = nFees + GetBlockSubsidy(nHeight, chainparams.GetConsensus());
coinbaseTx.vin[0].scriptSig = CScript() << nHeight << OP_0;
pblock->vtx[0] = MakeTransactionRef(std::move(coinbaseTx));
pblocktemplate->vchCoinbaseCommitment = m_chainstate.m_chainman.GenerateCoinbaseCommitment(*pblock, pindexPrev);
pblocktemplate->vTxFees[0] = -nFees;
LogPrintf("CreateNewBlock(): block weight: %u txs: %u fees: %ld sigops %d\n", GetBlockWeight(*pblock), nBlockTx, nFees, nBlockSigOpsCost);
However, recently in block 860062 the mining pool paid multiple remote miners directly from the coinbase transaction.
How does the miner create a coinbase transaction that overrides the default values stipulated in the above code-snippet from Bitcoin Core?