Hey again, and thanks for your answers !
Using Godot 3 may be a good idea, but I can't help but think it would a waste of the acquired experience if I don't use 4.0 right from the beginning x)
I more or less solved my issue. I don't use the var Cardname anymore, instead I write the card's name directly in CardInfo : @onready var CardInfo = CardDatabase.DATA[CardDatabase.Footman], yet it results in a bit of a mess later as expected (when I want to switch card, I have to modify the big CardInfo line, instead of just the var Cardname
I still have a hardtime understanding why @onready var CardInfo = CardDatabase.DATA[CardDatabase.Footman] does work, while @onready var CardInfo = CardDatabase.DATA[CardDatabase.Cardname] with var Cardname = "Footman" doesn't and results in the following error : Invalid get index 'Cardname'(on base : 'Nil').