Translate nested ABI parameters into C#

Greetings fellas, I use Moralis.Web3Api.Native.RunContractFunction. And I need to declare some output parameters, like that.

object[] _outputParams = new object[1];
_outputParams[0] = new {internalType = "uint256[]", name = "carIds", type = "uint256[]"};

When it was single ABI line - it was easy. But right now I got ABI json with a lot of nested objects. How to reproduce it in C# code?

My ABI outputs params:

"outputs":[
      {
         "components":[
            {
               "components":[
                  {
                     "internalType":"uint256",
                     "name":"id",
                     "type":"uint256"
                  },
                  {
                     "internalType":"string",
                     "name":"name",
                     "type":"string"
                  },
                  {
                     "internalType":"uint256",
                     "name":"tier",
                     "type":"uint256"
                  },
                  {
                     "internalType":"uint256",
                     "name":"horsepower",
                     "type":"uint256"
                  }
               ],
               "internalType":"struct Power",
               "name":"body",
               "type":"tuple"
            },
            {
               "components":[
                  {
                     "internalType":"uint256",
                     "name":"id",
                     "type":"uint256"
                  },
                  {
                     "internalType":"string",
                     "name":"name",
                     "type":"string"
                  },
                  {
                     "internalType":"uint256",
                     "name":"tier",
                     "type":"uint256"
                  },
                  {
                     "internalType":"uint256",
                     "name":"horsepower",
                     "type":"uint256"
                  }
               ],
               "internalType":"struct Power",
               "name":"engine",
               "type":"tuple"
            },
            {
               "components":[
                  {
                     "internalType":"uint256",
                     "name":"id",
                     "type":"uint256"
                  },
                  {
                     "internalType":"string",
                     "name":"name",
                     "type":"string"
                  },
                  {
                     "internalType":"uint256",
                     "name":"tier",
                     "type":"uint256"
                  },
                  {
                     "internalType":"uint256",
                     "name":"horsepower",
                     "type":"uint256"
                  }
               ],
               "internalType":"struct Power",
               "name":"transmission",
               "type":"tuple"
            },
            {
               "components":[
                  {
                     "internalType":"uint256",
                     "name":"id",
                     "type":"uint256"
                  },
                  {
                     "internalType":"string",
                     "name":"name",
                     "type":"string"
                  },
                  {
                     "internalType":"uint256",
                     "name":"tier",
                     "type":"uint256"
                  },
                  {
                     "internalType":"uint256",
                     "name":"horsepower",
                     "type":"uint256"
                  }
               ],
               "internalType":"struct Power",
               "name":"wheels",
               "type":"tuple"
            },
            {
               "components":[
                  {
                     "internalType":"uint256",
                     "name":"id",
                     "type":"uint256"
                  },
                  {
                     "internalType":"string",
                     "name":"name",
                     "type":"string"
                  },
                  {
                     "internalType":"uint256",
                     "name":"tier",
                     "type":"uint256"
                  },
                  {
                     "internalType":"uint256",
                     "name":"horsepower",
                     "type":"uint256"
                  }
               ],
               "internalType":"struct Power",
               "name":"hood",
               "type":"tuple"
            },
            {
               "components":[
                  {
                     "internalType":"uint256",
                     "name":"id",
                     "type":"uint256"
                  },
                  {
                     "internalType":"string",
                     "name":"name",
                     "type":"string"
                  },
                  {
                     "internalType":"uint256",
                     "name":"tier",
                     "type":"uint256"
                  },
                  {
                     "internalType":"uint256",
                     "name":"horsepower",
                     "type":"uint256"
                  }
               ],
               "internalType":"struct Power",
               "name":"spoiler",
               "type":"tuple"
            },
            {
               "components":[
                  {
                     "internalType":"uint256",
                     "name":"id",
                     "type":"uint256"
                  },
                  {
                     "internalType":"string",
                     "name":"name",
                     "type":"string"
                  }
               ],
               "internalType":"struct Visual",
               "name":"color",
               "type":"tuple"
            },
            {
               "components":[
                  {
                     "internalType":"uint256",
                     "name":"id",
                     "type":"uint256"
                  },
                  {
                     "internalType":"string",
                     "name":"name",
                     "type":"string"
                  }
               ],
               "internalType":"struct Visual",
               "name":"neon",
               "type":"tuple"
            },
            {
               "components":[
                  {
                     "internalType":"uint256",
                     "name":"id",
                     "type":"uint256"
                  },
                  {
                     "internalType":"string",
                     "name":"name",
                     "type":"string"
                  }
               ],
               "internalType":"struct Visual",
               "name":"graffiti",
               "type":"tuple"
            }
         ],
         "internalType":"struct Car",
         "name":"",
         "type":"tuple"
      }
   ],

Could be closed. I just do some monster like that.

private static object[] OutParams()
        {
            var _outputs = new object[]
            {
                new
                {
                    components = new object[]
                    {
                        new
                        {
                            components = new object[]
                            {
                                new {internalType = "uint256", name = "id", type = "uint256"},
                                new {internalType = "string", name = "name", type = "string"},
                                new {internalType = "uint256", name = "tier", type = "uint256"},
                                new {internalType = "uint256", name = "horsepower", type = "uint256"},
                            },
                            internalType = "struct Power",
                            name = "body",
                            type = "tuple",
                        },
                        new
                        {
                            components = new object[]
                            {
                                new {internalType = "uint256", name = "id", type = "uint256"},
                                new {internalType = "string", name = "name", type = "string"},
                                new {internalType = "uint256", name = "tier", type = "uint256"},
                                new {internalType = "uint256", name = "horsepower", type = "uint256"},
                            },
                            internalType = "struct Power",
                            name = "engine",
                            type = "tuple",
                        },
                        new
                        {
                            components = new object[]
                            {
                                new {internalType = "uint256", name = "id", type = "uint256"},
                                new {internalType = "string", name = "name", type = "string"},
                                new {internalType = "uint256", name = "tier", type = "uint256"},
                                new {internalType = "uint256", name = "horsepower", type = "uint256"},
                            },
                            internalType = "struct Power",
                            name = "transmission",
                            type = "tuple",
                        },
                        new
                        {
                            components = new object[]
                            {
                                new {internalType = "uint256", name = "id", type = "uint256"},
                                new {internalType = "string", name = "name", type = "string"},
                                new {internalType = "uint256", name = "tier", type = "uint256"},
                                new {internalType = "uint256", name = "horsepower", type = "uint256"},
                            },
                            internalType = "struct Power",
                            name = "wheels",
                            type = "tuple",
                        },
                        new
                        {
                            components = new object[]
                            {
                                new {internalType = "uint256", name = "id", type = "uint256"},
                                new {internalType = "string", name = "name", type = "string"},
                                new {internalType = "uint256", name = "tier", type = "uint256"},
                                new {internalType = "uint256", name = "horsepower", type = "uint256"},
                            },
                            internalType = "struct Power",
                            name = "hood",
                            type = "tuple",
                        },
                        new
                        {
                            components = new object[]
                            {
                                new {internalType = "uint256", name = "id", type = "uint256"},
                                new {internalType = "string", name = "name", type = "string"},
                                new {internalType = "uint256", name = "tier", type = "uint256"},
                                new {internalType = "uint256", name = "horsepower", type = "uint256"},
                            },
                            internalType = "struct Power",
                            name = "spoiler",
                            type = "tuple",
                        },
                        new
                        {
                            components = new object[]
                            {
                                new {internalType = "uint256", name = "id", type = "uint256"},
                                new {internalType = "string", name = "name", type = "string"},
                            },
                            internalType = "struct Visual",
                            name = "color",
                            type = "tuple",
                        },
                        new
                        {
                            components = new object[]
                            {
                                new {internalType = "uint256", name = "id", type = "uint256"},
                                new {internalType = "string", name = "name", type = "string"},
                            },
                            internalType = "struct Visual",
                            name = "neon",
                            type = "tuple",
                        },
                        new
                        {
                            components = new object[]
                            {
                                new {internalType = "uint256", name = "id", type = "uint256"},
                                new {internalType = "string", name = "name", type = "string"},
                            },
                            internalType = "struct Visual",
                            name = "graffiti",
                            type = "tuple",
                        },
                    },
                    internalType = "struct Car",
                    name = "",
                    type = "tuple"
                },
            };

            return _outputs;
        }