The foundation. ChessCommon is the shared chess brain that every other service in the system now stands on. It is not about seeing, organizing, relaying, or rendering — it is simply about what chess is: the board, the pieces, the rules, and the set of moves that legally exist.
It is a single Java library — one package, game — that depends on nothing. The camera sees, the SOM layers organize, the vector server relays, the board renders; but all of them agree on the same model of the game, and that agreement lives here.
Before ChessCommon, the board reached into the SOM layer for its legal-move library, and the SOM layer reached back into the board for its model — a circular dependency. Each project needed the other to compile, which is something a build tool can never order, so the whole system would only build inside the IDE. ChessCommon is that knot pulled loose: the shared domain was lifted into one module that depends on nothing, and BoardTemplate, Test4, and VectorServer now depend on it instead of on each other. The dependency graph became acyclic, and the system compiled from the command line for the first time.
Build order matters: the foundation goes in first, or nothing downstream resolves. With it installed, every service builds on its own.
In Eclipse it is simpler still: the services read their pom.xml through m2e, so importing ChessCommon and running Maven → Update Project on the rest wires everything together — no hand-edited classpaths.
common(adj.) held by all, owned by none. the sixty-four squares belong to everyone who ever learned them, and to no one.
1. e4a sentence understood in every language, exchanged between people who share no other word.
∞the game is older than the borders that claim it; the rules outlived the empires that wrote them down.
½–½two strangers, no common tongue — and still, they share the opening.
…what every service here depends on is what every player always has: that we agree, before the first move, on what the board even is.