I aim to understand the general concept of "variable attributes" hoping it will help me understand [what is declare in Bash](https://unix.stackexchange.com/questions/510220/what-is-declare-in-bash).

What is a variable attribute? Why would someone want to give an attribute to a variable? Why isn't just creating an variables and expanding them in execution be "enough" when working with variables?