CLI Tools
The src/bin/ files are thin command-line shells over shared library code.
asset_pack
Section titled “asset_pack”Builds, verifies, inventories, lists, and unpacks asset packs.
Common commands:
cargo run --bin asset_pack -- --dry-run --listcargo run --bin asset_pack -- --out data.pak --inventory-out asset_inventory.md --verifycargo run --bin asset_pack -- --identity --key identity.key --out identity.pak --inventory-out identity_inventory.md --verifycargo run --bin asset_pack -- --pack data.pak --unpack unpacked_assetsResponsibilities:
- discover runtime or identity assets
- build an
AssetPack - optionally encrypt with
UniversalKey - verify packed bytes against source files
- reject unsafe unpack paths
sprite_cutter
Section titled “sprite_cutter”Cuts frames from sheets declared in Assets/Metadata/spritesheets.toml.
cargo run --bin sprite_cutter -- --sheet playercargo run --bin sprite_cutter -- --all --dry-runcargo run --bin sprite_cutter -- --allThe cutter validates sheet dimensions against metadata before writing frames. Generated output goes under Generated/Sprites/, which is ignored by Git.
mod_check
Section titled “mod_check”Validates moddable content without launching the game.
cargo run --bin mod_checkcargo run --bin mod_check -- --root .It checks TOML, YAML, Lua, schema versions, command buffers, shader uniforms, UI/theme values, asset-pack discoverability, save-sensitive ids, ability references, items, choreography, scene projects, and mod manifests.
Use it before shipping a mod or release package.
choreo
Section titled “choreo”The choreography contract CLI is the bridge between game data and authoring tools.
cargo run --bin choreo -- validate Assets/Data/choreography.tomlcargo run --bin choreo -- validate Assets/Data/scenescargo run --bin choreo -- convert scene.toml scene.jsoncargo run --bin choreo -- schema --out choreography.schema.jsoncargo run --bin choreo -- preview Assets/Data/scenes/example_scene.toml introcargo run --bin choreo -- assetscargo run --bin choreo -- graph Assets/Data/scenes --jsonThe CLI is intentionally thin: the data model and validation rules live in echo_warrior::game::choreography.