Finished converting over to using static types in all my game scripts.
Also changed how different plant types are defined. There used to be an enum in a script and some match statements which defined the properties but that was pretty clunky.
Now I'm using a Godot custom resource type. The resources live in a designated folder and a small manager class loads them at startup. The benefit of this is I can add and edit plant types without changing code and Godot handles the serialization and presents the properties in the editor.