ArchitectureSnapshot
A compact, committable record of a project's architecture at one point in time.
Deliberately not the whole graph. A snapshot exists to be committed to the repository and compared against on every pull request, so it has to stay small enough to review and stable enough that an unrelated change does not rewrite it: module paths, dependency pairs, and the handful of numbers worth ratcheting. Everything derivable is left out and recomputed on demand.
All fields default, so a snapshot written by an older plugin version still deserializes and simply reports less.
Parameters
Module paths, sorted.
Production dependency pairs as "from>to", sorted. The arrow form keeps the file diffable line by line, which is the point of committing it.
Module paths that sit inside a production dependency cycle, sorted.
Modules nothing depends on, sorted.
Declared layer name per module, for the modules a layer claims.
The structural numbers worth watching over time.
The plugin version that wrote this snapshot.