Dotnet Neo4JClient: Can I use JsonProperty to change variable aliases in generated cypher?

I have this CypherFluentQuery which returns a custom object CustomFooQueryResult rather than an anonymous type:

            var query = new CypherFluentQuery(client)
                .Match("(foo:Foo)")
                .Return((foo) => new CustomFooQueryResult
                {
                    Foos = foo.CollectAsDistinct<FooDto>(),
                    FooCount = (int)foo.CountDistinct()
                });
        private class CustomFooQueryResult
        {
            [JsonProperty("foos")]
            public IEnumerable<FooDto> Foos { get; set; }
            [JsonProperty("fooCount")]
            public int FooCount { get; set; }
        }

        private class FooDto
        {
            public string FooProp { get; set; }
        }

Upon inspecting the generated Cypher query, I found that the class property names are used as variable aliases in the generated return statement.

I'm wondering if it is or should be possible to influence the alias name generation. I'd like them to be camelcase, while my class properties remain pascalcase. I tried using [JsonProperty("fooCount")] but still "FooCount" was generated as alias.

Although this seems like a minor inconvenience, I'm chaining a lot of these queries as subqueries in calls, where I would like to have input and output parameters in camelcase.

This is what I tried: (using .net5, Neo4JClient 4.1.18)

        [Test]
        public void TestCustomReturnTypeWithJsonPropertyAttr()
        {
            // arrange
            var expectedCypher = "MATCH (foo:Foo)\r\nRETURN collect(distinct foo) AS foos, count(distinct foo) AS fooCount";

            var client = Substitute.For<IRawGraphClient>();
            var query = new CypherFluentQuery(client)
                .Match("(foo:Foo)")
                .Return((foo) => new CustomFooQueryResult
                {
                    Foos = foo.CollectAsDistinct<FooDto>(),
                    FooCount = (int)foo.CountDistinct()
                });

            // act
            var resultCypher = query.Query.DebugQueryText;  // results in: "MATCH (foo:Foo)\r\nRETURN collect(distinct foo) AS Foos, count(distinct foo) AS FooCount"

            // assert
            Assert.AreEqual(expectedCypher, resultCypher);
        }
How many English words
do you know?
Test your English vocabulary size, and measure
how many words do you know
Online Test
Powered by Examplum