Exploring interfaces: Simplest Gizmo geometry tutorial?

Hello , i am learning python and blender and i am exploring what is possible to do.

I learned how make my own operators, a modal, my own menus ,
a bit confused about properties, but succeeded in making an interactive panel.

i am pretty interested in exploring a design based on gizmo now. (the last part on the right)
For example, a gizmo to change the depth of a curve (like my panel)
But the api docs and the template are really thin.
And not very easy to understand in reverse engineering.

Someone have a tutorial about makin the “Simplest gizmo geometry”
What a gizmo need to works ? needed function and variables (update draw?).
can a gizmo be grouped? or multiple? ( for example the move tool )

docs about “gizmo struct” and “gizmogroup operators” are not much explicative
Thanks for your time