and now i've decided to split up all of the player's data into a scriptable object as well... i'm not sure if i totally understand how other programmers have described SOs as being "infectious" to their code design, but i feel like i'm going to understand that soon.
i made a PlayerManager whose job it is to negotiate how the player's data changes with all other scripts. this means that Combat and Locomotive components should rely on the player's data to describe how they deal damage, what weapon they're wielding, how high they jump, everything. and then i can serialize all or as much of that as i want.
looking ahead, i can see a future where i'll need the player's data to be split up a number of times depending on what kind of data it is. like for example, a player's movement speed should probably be the same for everyone in the hub world, but be affected by a bunch of crazy stat changes while adventuring. but i think i can refactor that in a reasonable way when i get there with this system? dangerous thing for me to assume.