Base for all 2D nodes (Node2D and Control)
can be arranged in trees
are children of Viewport (what they are displayed through)
Movement
node that adds separate 2D rendering layer for all offspring
allows for a single scene tree to have different canvas transforms
every canvas layer has a transform (translation, rotation, scale, etc.) that can be accessed as a Transform2D.
backing for canvas nodes
! we can convert InputEvent coordinates to local coordinates with CanvasItem.make_input_local
Used for complex physical effects: sparks, fire, magic, smoke, mist