{ "ready": true, "validation": "Existing development preview returned0; invokes exact full build/metadata/resource/dependency validation in memory. No output ZIP or repository write.", "preview": { "archive_bytes": 12372911, "archive_sha256": "a7bf20772a3ebc1e115238e6787c25e8dc3c50536bdf6fb2d49c65587d332ccb", "kind": "DEVELOPMENT SOURCE BUNDLE", "payload_files": 720, "preview": true, "projects": { "core": { "dependencies": [ "58D0FB3206B6F859", "595F2BF2F44836FB", "5E524E4FEECCA92B", "629B2BA37EFFD577", "65930CB4CD0237B2" ], "guid": "2528466DE220D91C", "id": "ERR_Core" } } }, "authored_payload_files": 718, "zip_members": 721, "command": [ "python3", "-B", "tools/source_bundle.py", "--mode", "development", "--output", "/tmp/escapistsrereintroduced-development-source-20261105.zip" ], "working_directory": "/home/jakub/devel/escapistsrereintroduced", "output_exists_now": false, "procedure": [ "Run from successor checkout only after final changes are settled. Output parent must already exist, destination must be new regular .zip outside checkout; helper refuses existing/symlink outputs.", "Compare emitted archive SHA with preview only if source/policy bytes stayed identical; otherwise regenerate preview and bind fresh source inputs.", "Extract into a new development directory, verify each BUNDLE-MANIFEST.json payload SHA and exact membership plus manifest, then register addons/core/addon.gproj with separately installed dependencies." ], "closure": { "project": { "dependencies": [ "58D0FB3206B6F859", "595F2BF2F44836FB", "5E524E4FEECCA92B", "629B2BA37EFFD577", "65930CB4CD0237B2" ], "guid": "2528466DE220D91C", "id": "ERR_Core" }, "external_policy": "Seven explicitly allowed transitive RHS/WCS addons; project directly depends on four plus vanilla base. No external asset payload is copied.", "resources": "Metadata GUID/path uniqueness and hard resource references validated against owned/vanilla/external catalogs; one exact pinned identity-only REAPER comparison exception and one exact vanilla Character_Base override retained." }, "excluded": "Root .build/.local/docs/evidence/git, installed addons, original workspace and runtime packages not collected. Narrow reviewed authored UI/audio/atlas assets are included.", "limits": [ "Development source only; no PAK/native compile/startup/install/publish.", "Catalog closure validation does not prove currently installed external versions or physical gameplay.", "Do not copy entire repository or historical evidence; existing helper reads only authored addons and small policy files.", "No full source_bundle unittest suite rerun: preview completed production validation and existing tests were inspected." ], "files": { "tools/source_bundle.py": "a7376836ae0764668cfd5933c555175398c1bddaee01c0b1435ead09f845803f", "tools/source_manifest.py": "c1a985348bad16f3b5b69ef7e545b6341eca298d8ae08111b8340b31535cc199", "tools/resource_references.py": "523042563431cd20443683de43ccc9dc76b86301cb40a50d50083dd8bdd01c31", "tools/external_addons.py": "8c19f330f13498a4d6f7a2d2097c17dab3121262faa0954751f307496ce3e93e", "tools/project_schema.py": "cc1527c5f68fb75711208f293f4751c206fedc725934d9db7d4b7fe539f60cec", "docs/development-source-bundle.md": "7cd8dbc04a9cfe87ff7479283477e788552484ea1b83ffdee4893620f1df31ec", "docs/external-addons.json": "032ddb2b38740704fa78974b0f8d4cdf40a487daaf212fdc305b35dff2d395c5", "docs/vanilla-resources.json": "8f0254d0786da34a4d7dedee2ce62cb766d054daaa8015cc889221e1629b2a6d", "docs/addons.json": "ccda7c1aa6bf60524cd983ff863e178270445ef193e7418967b11cc49eb366d4", "addons/core/addon.gproj": "73e973a1f1c5910393e16f86a3a40d792031bb2fa3fc7f4dd87a06a16c3e34a4" }, "source_inventory_sha256": "c6239323a9044555d78707aa63923027507d02148b64b4ebb8a7afee5b069d87" }