I would like to correctly model a chess match using DDD practices. Following the path of DDD aggregates, I should model the aggregate in such a way as to enclose invariants