Invoking ```bitcoin-cli help getblocktemplate``` shows the following as example result:

```
{                                 (json object)
  "version" : n,                  (numeric) The preferred block version
  "rules" : [                     (json array) specific block rules that are to be enforced
    "str",                        (string) rulename
    ...
  ],
  "vbavailable" : {               (json object) set of pending, supported versionbit (BIP 9) softfork deployments
    "rulename" : n,               (numeric) identifies the bit number as indicating acceptance and readiness for the named softfork rule
    ...
  },
  "vbrequired" : n,               (numeric) bit mask of versionbits the server requires set in submissions
  "previousblockhash" : "str",    (string) The hash of current highest block
  "" : [                          (json array) contents of non-coinbase transactions that should be included in the next block
    {                             (json object)
      "data" : "hex",             (string) transaction data encoded in hexadecimal (byte-for-byte)
      "txid" : "hex",             (string) transaction id encoded in little-endian hexadecimal
      "hash" : "hex",             (string) hash encoded in little-endian hexadecimal (including witness data)
      "depends" : [               (json array) array of numbers
        n,                        (numeric) transactions before this one (by 1-based index in 'transactions' list) that must be present in the final block if this one is
        ...
      ],
      "fee" : n,                  (numeric) difference in value between transaction inputs and outputs (in satoshis); for coinbase transactions, this is a negative Number of the total collected block fees (ie, not including the block subsidy); if key is not present, fee is unknown and clients MUST NOT assume there isn't one
      "sigops" : n,               (numeric) total SigOps cost, as counted for purposes of block limits; if key is not present, sigop cost is unknown and clients MUST NOT assume it is zero
      "weight" : n                (numeric) total transaction weight, as counted for purposes of block limits
    },
    ...
  ],
  "coinbaseaux" : {               (json object) data that should be included in the coinbase's scriptSig content
    ...
  },
  "coinbasevalue" : n,            (numeric) maximum allowable input to coinbase transaction, including the generation award and transaction fees (in satoshis)
  "coinbasetxn" : {               (json object) information for coinbase transaction
    ...
  },
  "target" : "str",               (string) The hash target
  "mintime" : xxx,                (numeric) The minimum timestamp appropriate for the next block time, expressed in UNIX epoch time
  "mutable" : [                   (json array) list of ways the block template may be changed
    "str",                        (string) A way the block template may be changed, e.g. 'time', 'transactions', 'prevblock'
    ...
  ],
  "noncerange" : "hex",           (string) A range of valid nonces
  "sigoplimit" : n,               (numeric) limit of sigops in blocks
  "sizelimit" : n,                (numeric) limit of block size
  "weightlimit" : n,              (numeric) limit of block weight
  "curtime" : xxx,                (numeric) current timestamp in UNIX epoch time
  "bits" : "str",                 (string) compressed target of next block
  "height" : n                    (numeric) The height of the next block
}
```

actual result has more fields (**capabilities**, **transactions**(probably the field without a name), **default_witness_commitment**, **longpollid**) one field is missing (**coinbasetxn**):

```
{
  "capabilities": [
    "proposal"
  ],
  "version": 536870912,
  "rules": [
    "csv",
    "!segwit"
  ],
  "vbavailable": {
  },
  "vbrequired": 0,
  "previousblockhash": "000000005b00d9476d756947955556e6db801c676e6650118d633e66e800b940",
  "transactions": [
    {
      "data": "02000000000106a84cea3a37cfe6a38c12fbf64761ac926c2f4ab05bbdac5b187e438f40860cc00000000017160014422b977c6a28f69359e2f0dfb6aa5197e466e5b8fdffffff33d588cec09c12f009fa9663a3db4390a4e8ddafe7d9a31092b3d$
      "txid": "9493cb4f621a1f95a264526f216914f741e6f01bff3dfdab5ab9ec81c3ce16a5",
      "hash": "543794756b046709b40c22ed9d0aa9492ef64e1f28d193a00efd6fd06e419f0a",
      "depends": [
      ],
      "fee": 133272,
      "sigops": 6,
      "weight": 2467
    },
    ...
  ],
  "coinbaseaux": {
  },
  "coinbasevalue": 19864212,
  "longpollid": "000000005b00d9476d756947955556e6db801c676e6650118d633e66e800b940529",
  "target": "000000000000000e7e1000000000000000000000000000000000000000000000",
  "mintime": 1596097882,
  "mutable": [
    "time",
    "transactions",
    "prevblock"
  ],
  "noncerange": "00000000ffffffff",
  "sigoplimit": 80000,
  "sizelimit": 4000000,
  "weightlimit": 4000000,
  "curtime": 1596104418,
  "bits": "190e7e10",
  "height": 1781942,
  "default_witness_commitment": "6a24aa21a9ed167e62a901109d5cbbc8d3892c8e12f66c2b52a8675df9bbb0b30fa2c033ae30"
}

```
CScript coinbase_script = GetScriptForDestination(destination);
    return generateBlocks(chainman, mempool, coinbase_script, num_blocks, max_tries);
}
static UniValue generateblock(const JSONRPCRequest& request)
{
    RPCHelpMan{"generateblock",
        "\nMine a block with a set of ordered transactions immediately to a specified address or descriptor (before the RPC call returns)\n",
        {
            {"output", RPCArg::Type::STR, RPCArg::Optional::NO, "The address or descriptor to send the newly generated bitcoin to."},
            {"transactions", RPCArg::Type::ARR, RPCArg::Optional::NO, "An array of hex strings which are either txids or raw transactions.\n"
                "Txids must reference transactions currently in the mempool.\n"
                "All transactions must be valid and in valid order, otherwise the block will be rejected.",
                {
                    {"rawtx/txid", RPCArg::Type::STR_HEX, RPCArg::Optional::OMITTED, ""},
                },
            },
        },
        RPCResult{
            RPCResult::Type::OBJ, "", "",
            {
                {RPCResult::Type::STR_HEX, "hash", "hash of generated block"},
            }
        },
        RPCExamples{
            "\nGenerate a block to myaddress, with txs rawtx and mempool_txid\n"
            + HelpExampleCli("generateblock", R"("myaddress" '["rawtx", "mempool_txid"]')")
        },
    }.Check(request);
    const auto address_or_descriptor = request.params[0].get_str();
    CScript coinbase_script;