Closed johnameyer closed 3 years ago
With #63, ownership of modules no longer necessitates deserialization, just initialization, transformation, and validation. Still trying to figure out how modules can be built out of smaller modules without duplicating state across module children or exposing children modules to consumers.
New thoughts:
Still up in the air in the implementation:
Rather than having a flat state for each game, refactor common functionality into separate components that can be chosen arbitrarily by games. Consumers should be able to expect a subset of the state (e.g. only
{messages: MessagesState}
). As well, use controllers to wrap each component so that only expected operations are performed and the state remains consistent.