Prostore::Schema::Fingerprint
A stable hash over a model's Definition (ADR-0009 invariant 4).
The fingerprint identifies a target schema state, not a labeling. Names are excluded from the hash so a rename does not change the fingerprint — renames are pure label changes per ADR-0002. Fields, indexes, and FKs are sorted by tag so declaration order doesn't affect the result.
The fingerprint is the basis for ADR-0009's version-skew check: an app booting against an in-progress migration must compute the same target hash as the migration was started with, or it refuses to start.