Really interesting problems you're tackling!
My current understanding is that you are designing a system that uses entities and components that are separate from Godot's Node system. You're doing it this way so that you can maintain a global state of these entities, and a history of that state. This is so that you can transmit just this state between clients and the server, and so that you can use the history of states to play back a match, or handle rollback in the multiplayer code.