Asking about structure of my game

in general store data at the highest shared level

to get started you can have everything in the player controller. just get it working

then, if your project really demands it, you can split out functionality from there to various classes

usually the impetus for code separation is to support collaboration on a team

only in AAA scoped cases will it matter for optimization concerns. given that you ask these questions, i assume and would hope you are not attempting to make a AAA scoped project.

and code separation is a detriment to maintainability so I don’t do it unless there is a clear and present reason compelling it

in other words, walk the straight and narrow path and only deviate if there is an impassable blockade