Your code is your only interface. Write a harvester program; watch the deterministic sim run it.
mix convoy.run YOUR_BOT --region main --player NAME --watch
One rule per line, evaluated top-to-bottom; first match wins. Each rule returns an intent — the sim resolves it authoritatively (you can't cheat position or ore).
cargo_full · cargo_empty · has_cargo · on_resource · at_base · can_unload · always
harvest · unload · to_base · to_resource · wander · idle
when can_unload unload when cargo_full to_base when on_resource harvest otherwise to_resource
mix convoy.run --player