found (minor) bug, maybe you want to fix it.
I know, only global default variables are useful (and therefore I assume they check only global variables) and the word global is not required. But if I use it in combination with global I get an a001 error.
e.g. this produces an error
@startuml
!global $variable = "changed value"
!global $variable ?= "default value"
[A] -> [B]: $variable
@enduml
this works
@startuml
!global $variable = "changed value"
!$variable ?= "default value"
[A] -> [B]: $variable
@enduml
BR Helmut