Godot Save Schema Guard
Validate Godot save-game fixtures against explicit schemas and catch incompatible save format changes before release.
The first release focuses on JSON saves because they are deterministic to validate outside the engine. It is meant to be a release gate: do not break player saves.
Install
python -m pip install -e .
When published:
python -m pip install godot-save-schema-guard
Quick Start
godot-save-guard generate-fixture --schema schemas\save.schema.json --fixture-output saves\fixtures\generated_v3.json --set 'player.id="pilot-1"' --format markdown
godot-save-guard validate saves\fixtures --schema schemas\save.schema.json
godot-save-guard validate examples\fixtures --schema examples\schema\save.schema.json --format markdown --output SAVE_COMPATIBILITY.md
godot-save-guard migrate saves\v1 --output-dir migrated\v2 --command "godot --headless --script tools/migrate_save.gd --input {input} --output {output}"
godot-save-guard migrate-chain saves\v1 --chain migrations.toml --output-dir migrated --schema schemas\save.schema.json --compare-original --format json --output reports\migration-chain.json
godot-save-guard migration-graph --chain migrations.toml --current 3 --supported 1 --supported 2 --format markdown
godot-save-guard redact saves\fixtures --path player.name --path players.*.email --output-dir sanitized\saves --dry-run
What It Checks
- Invalid JSON fixtures.
- Missing top-level
version. - Missing required schema properties.
- Numeric type drift such as
"100"where a number is expected. - Type mismatches.
- Unexpected properties when
additionalPropertiesis false. - Generated fixture samples from required schema fields, defaults, enum values, and optional JSON overrides.
- Migration command failures.
- Migration timeouts and unavailable migration executables.
- Shell-free migration execution with collision-safe nested output paths.
- Migration-chain failure messages that name the failed step, fixture, expected output, and captured stdout/stderr snippets.
- Ordered migration chains from older save versions to the current format.
- Final migrated fixture validation after a migration chain succeeds.
- Before-and-after summaries that compare original fixtures with final migrated outputs.
- Missing migration paths from supported save versions to the current format.
- Selected-field redaction for sanitized fixture copies.
- Report metadata and plain-language rule explanations for compatibility findings.
Redaction is path-based. It only changes paths you list with --path, so review
sanitized fixtures before attaching them to issues, documentation, or reports.
Documentation
Development
python -m pip install -e .
python -m unittest discover -s tests -v
godot-save-guard validate examples\fixtures --schema examples\schema\save.schema.json --fail-on none
Fixtures are generic and intentionally small so the repository is safe to publish.
Metadata
Release files for godot-save-schema-guard 0.1.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| godot_save_schema_guard-0.1.8.tar.gz | 21.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| godot_save_schema_guard-0.1.8-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 40.1 kB
Release files / godot_save_schema_guard-0.1.8.tar.gz
| Download URL | godot_save_schema_guard-0.1.8.tar.gz |
|---|---|
| Size | 21.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3eb0f79432de2f5fdcfdc9120c8d862183ae057f24a17aaa10408d12c230491b
|
|
BLAKE2b-256 checksum How to use checksums |
9be8effefe8a42eaa50a4bb97da7c83cda9d7490bdb5cf2192daadb945bcbbd8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 10, 2026.
Transparency logRelease files / godot_save_schema_guard-0.1.8-py3-none-any.whl
| Download URL | godot_save_schema_guard-0.1.8-py3-none-any.whl |
|---|---|
| Size | 18.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5e1bbe0ec5128c658dd53e60dbd6ecdc278e71ab83b15fd555e3246e31c91d51
|
|
BLAKE2b-256 checksum How to use checksums |
e60a96bc4c249bbf064538d6767887b699714597e998ea3cb076f454fc54ead2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 10, 2026.
Transparency log