Skip to main content

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 additionalProperties is false.
  • Generated fixture samples from required schema fields, defaults, enum values, and optional JSON overrides.
  • Migration command failures.
  • 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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

godot_save_schema_guard-0.1.7.tar.gz (20.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

godot_save_schema_guard-0.1.7-py3-none-any.whl (18.1 kB view details)

Uploaded Python 3

File details

Details for the file godot_save_schema_guard-0.1.7.tar.gz.

File metadata

  • Download URL: godot_save_schema_guard-0.1.7.tar.gz
  • Upload date:
  • Size: 20.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for godot_save_schema_guard-0.1.7.tar.gz
Algorithm Hash digest
SHA256 9b666e02991369bb96c9522541798b0846eb9eba54d6f145f9195de3ce012a52
MD5 1a8d67cc920edf449cffd71f45fac4c5
BLAKE2b-256 709bc767c496beb8a8707ccf9eee78357d004df5f6fe7c0e8815ee6eede46db3

See more details on using hashes here.

Provenance

The following attestation bundles were made for godot_save_schema_guard-0.1.7.tar.gz:

Publisher: publish-save-schema-guard.yml on NonniGB/godot-production-toolkit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file godot_save_schema_guard-0.1.7-py3-none-any.whl.

File metadata

File hashes

Hashes for godot_save_schema_guard-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 3ab3df5c018197042beb16cfd83e9d2182cf93cf56ce78fa2b839cb03d8060be
MD5 25c7b675ed112eea9e529cad8f30b09b
BLAKE2b-256 206199e2362925a99b0fa283cf9580e56cb334392fc0bb8fe261ab651263530a

See more details on using hashes here.

Provenance

The following attestation bundles were made for godot_save_schema_guard-0.1.7-py3-none-any.whl:

Publisher: publish-save-schema-guard.yml on NonniGB/godot-production-toolkit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page