### android platform (enabled)
- **Use for**: Android app scenarios on a real device / emulator.
- **Server**: `android-devtools` · **scenario tools**: the `adt_scenario-*` tools
  (`adt_scenario-add` / `-update` / `-delete` / `-list` / `-search` / `-run`).
- **Store**: project → `.ironbee/scenarios/adt`, global → `~/.ironbee/scenarios/adt` (the
  server's `SCENARIOS_DIR`; you pass `scope`, the server resolves the path).
- Scenario **scripts** call this platform's tools via `callTool('<bare-tool>', {...})` — discover
  the available `adt_*` tool names from your connected MCP tool schemas; don't guess.

**What to test & how — capture the SAME evidence the verifier would** (a scenario runs FOR
verification, so its script must collect what the android cycle collects). In the script:
1. **Connect + launch** — `adt_device_connect` (list targets with `adt_device_list-targets`; an
   emulator is usually `emulator-5554`), then `adt_device_launch-app` with the package name.
2. Pick an **evidence path** for the changed code area:
   - **Device-evidence path** — drive the UI to exercise the change (`adt_interaction_tap` /
     `adt_interaction_input-text` / `adt_interaction_swipe` / `adt_interaction_scroll`; locate elements
     with `adt_a11y_find-element` / the UI-snapshot's element refs — do NOT hand-parse the snapshot
     TEXT with regex), then capture **BOTH**: a screenshot (`adt_content_take-screenshot`
     **with `returnOutput: true`** — put the returned `filePath` in your result; the verifier `Read`s
     that file to judge the pixels. **Do NOT set `includeBase64`** — a nested scenario screenshot isn't
     surfaced as an inline image and base64 only bloats the result) **AND** a UI snapshot
     (`adt_a11y_take-ui-snapshot`, `returnOutput: true` — its TEXT view hierarchy / labels is what the
     verifier reads). Both are MANDATORY (visual + structural, like the browser screenshot + aria pair).
   - **Log-evidence path** — `adt_o11y_log-read` / `adt_o11y_log-follow` (with `returnOutput: true`)
     for the tag(s) relevant to the change; confirm expected lines appear AND no FATAL / crash (E/
     entries) for the app package.
   - **Network-evidence path** — capture outgoing HTTP traffic with `adt_o11y_get-http-requests` (`returnOutput: true`): start capture, drive the app (`adt_interaction_*`) to trigger traffic, read again, and put the captured request(s)/status in your result. Optional setup helpers (NOT evidence): `adt_o11y_new-trace-id` to pin a correlation root, `adt_stub_*` to mock/intercept responses.

`return` the evidence — UI-snapshot text, log lines, the screenshot `filePath`s — **plus explicit
pass/fail assertions**. That returned result is what `$ironbee-verify scenario:<name>` reads to judge
functional + structural (from the text) and **visual** (by `Read`ing the returned screenshot files).
**`android-devtools` is Android-only.**
