# The identity
The file is {ClassName}.{fingerprint}.json. The fingerprint is eight hex of
the sha256 of the compiled schema, rendered as deterministic text.
Everything in the schema counts — types, limits, defaults, the order of the
fields, and the notation atoms (Label, Description, Placeholder, …) that
change nothing a file can carry. No exceptions and no small print: a contract
without special cases fits in one sentence and is tested in three lines.
Change the class and you get a new, empty database. The old file stays where it was, untouched and readable, named for the schema that wrote it. Moving rows across is a script over readable JSON — a minute of work — and it is deliberately outside this library, because a migration that runs automatically is a migration nobody read.