Is your feature request related to a problem? Please describe.
Right now the Query and QueryGroup classes are built in a builder pattern style way (mutating their own object and returning this). This has a couple advantages but also comes with several disadvantages and I would generally say that it is bad practice.
Describe the solution you'd like
Since completely changing them to immutable may break existing code and may not be in favor of all users, I would rather add a new .mutable() and .immutable() switch and a default state for new queries in the config.
Is your feature request related to a problem? Please describe. Right now the Query and QueryGroup classes are built in a builder pattern style way (mutating their own object and returning this). This has a couple advantages but also comes with several disadvantages and I would generally say that it is bad practice.
Describe the solution you'd like Since completely changing them to immutable may break existing code and may not be in favor of all users, I would rather add a new .mutable() and .immutable() switch and a default state for new queries in the config.