{
  "checks": [
    "mutual terms normalize once and reject duplicate or directional forgeries",
    "native flags enable passage at Dynasties and alliance at Political Philosophy, on either side",
    "embassy and peace are common requirements and signing is a saved accept/refuse interruption",
    "passage is reciprocal, remains active after twenty turns and cannot be duplicated",
    "foreign road costs and the filtered route match the ordinary MOVE command",
    "passage enables allied rail and barricade access without permitting entry into occupied cities",
    "foreign worker improvement requires passage and retains the busy-worker lock",
    "cancelling passage stops now-illegal foreign work and preserves its tile progress",
    "peaceful resource transit through third-party territory is independent of passage and gives no ownership",
    "alliance requires a mutually contacted third party and an existing war",
    "accepting an alliance executes the partner war and gold transfer atomically with a matching warning",
    "cancelling an alliance after its commitment does not make peace with the target",
    "a separate peace breaks the package, ends GPT and records the ally who made peace",
    "target elimination fulfils an alliance without a reputation breach",
    "passage abuse is recorded even after twenty turns, and the defender is never blamed",
    "AI accepts reciprocal passage and paid war support through the shared quotation",
    "insertion of saving before negotiation and resolution preserves the entire outcome",
    "forged target, agreement model and canonical term actors are rejected on load",
    "foreign rail work uses the actors own connected materials and cannot take the partners iron",
    "an alliance-induced war assigns passage abuse and broken peace to the actual joining actor",
    "the initial AI can propose passage through the same saved negotiation commands",
    "unrelated parties passage does not grant access to the actor or reveal hidden orders",
    "published schema23 reports, active/pending trades, queue and unfinished road migrate by metadata only"
  ],
  "passed": 23,
  "source": "tests/agreements.test.mjs",
  "log": "/tmp/civ3-agreements-focused-final.log"
}
