Native control, inspection, UI automation and evidence capture for a running Witcher 3 process.
README.md

Debugger data contracts #

These v1 JSON Schemas describe the shipped debugger evidence: shadow records, explicit availability values, session sidecars, hook capabilities, journal manifests and immutable export manifests. Top-level unknown fields and unsupported versions are rejected. payload.native retains the original native response verbatim; it is raw evidence, not a promise that every native field has been normalized.

record-v1.schema.json has a closed record-kind union. The current exporter emits observations, operation results, trace-window boundaries, attempts, contacts and stream gaps. It never synthesizes unavailable move lifecycle transitions. Native time on attempt/contact events becomes clock.engine_seconds; original events remain in the journal. Tick/time comparisons require the same session/generation. Host monotonic timestamps require the same host_clock_id.

The teleport callback observer uses raw native event kinds teleport_callback and teleport_observer. They remain inside observation.payload.native, not new members of the v1 closed record-kind union. Its operation result retains separate host config fingerprints and explicit unavailable stages. Actor water queries likewise use generic native observations. No schema/reader version change is needed; raw values are not discarded or promoted to action_transition, arrival or verified task completion.

Observed values require a value and null reason. Unavailable/not-enabled values require null and a reason. An observed absent target belongs in a typed value such as { "present": false }; null is not evidence of observed absence. Raw native sentinels remain raw and must not be mistaken for normalized measurements.

Use debug evidence-verify MANIFEST to verify digests, row sequence, session identity, operation accounting and the implemented record invariants. The included Rust reader rejects unsupported versions, unknown record kinds/fields and malformed availability. Neither verifier claims that a well-formed trace is a valid combat comparison or that the Rust model is equivalent to the game.

Full experiment-plan, episode/aggregate and variant-installation schemas from architecture §§15–17 belong to the gated batch expansion. They are not shipped under these debugger schema names. plans/hag-pilot.json is explicitly the minimal primitive throughput gate: it marks all combat outcome statistics ineligible until a complete pre-reviewed reset/contamination envelope exists. The measured failed throughput gate stopped expansion rather than relabeling this pilot as the full simulator contract.