{
  "schema": "unitiqx.ai-read-only-play.v1",
  "version": "1.0.0",
  "generated_utc": "2026-10-11T04:48:43.073Z",
  "title": "Read-Only AI Play Contract",
  "routes": {
    "game": "/commons/demos/matrix-arcade/index.html",
    "rules": "/commons/demos/matrix-arcade/rules.json",
    "challenges": "/commons/demos/matrix-arcade/challenge-book.json",
    "solutions": "/commons/demos/matrix-arcade/reference-solutions.json",
    "how_to": "/commons/demos/matrix-arcade/mindplay.html",
    "evidence": "/commons/demos/matrix-arcade/visual-gallery.html"
  },
  "capabilities": {
    "allowed": [
      "Fetch approved public GET/HEAD files",
      "Inspect public screenshots or textual equivalents",
      "Reason about any of 31 missions",
      "Propose a legal next move",
      "Calculate deterministic feedback using published rules",
      "Show a transcript with sources and provenance"
    ],
    "not_claimed": [
      "Actual interaction with the user's browser",
      "Server-side game save mutation",
      "Model-independent validation of decisions",
      "Provider access without authorization",
      "Executing changes to the VPS",
      "Physical device or human verification"
    ]
  },
  "universal_state": {
    "fields": [
      "session_id (self-declared synthetic)",
      "campaign_id",
      "mission_id",
      "state (copied from the challenge)",
      "available_actions",
      "chosen_action",
      "predicted_next_state",
      "explanation",
      "provenance",
      "confidence",
      "tool_receipt (if real)"
    ],
    "only_public_information": true,
    "never_report_simulation_as_execution": true
  },
  "response_template": {
    "label": "HYPOTHETICAL RULES-BASED PLAY (NOT A LIVE GAME RUN)",
    "mission_id": "route:0",
    "observation": "The 6x6 map begins at S, with two K cores and a final E.",
    "chosen_action": "Move south, if the route remains open.",
    "rationale": "Start by exploring a corridor that can reach a data core while respecting walls.",
    "predicted_state": "x=0,y=1; remaining cores=2; completed=false",
    "feedback_source": "engine.js mazeMove/mazeWon rules",
    "evidence_type": "local-rule-reasoning",
    "tool_receipt": null
  },
  "decision_contracts": {
    "maze": "Use N/E/S/W. Walls block. Collect all K before exit.",
    "circuit": "Tile positions are 1-based in reading order. One click rotates a tile clockwise.",
    "cipher": "Three distinct symbols in 0-5; report exact and misplaced; no unsupported claims.",
    "pattern": "Choose an option and explain observed numerical rule.",
    "balance": "Test all five resource constraints, never budget alone.",
    "defense": "Tabletop scenarios are approximate teaching analogies, not canvas-physics or guaranteed live winning moves.",
    "final": "Requires 30 prior clears in the relevant simulated or actual campaign, then order six sigils."
  },
  "verification_labels": {
    "verified_browser_action": "A browser automation actually performed an action and recorded an independent receipt.",
    "rule_simulation": "Action outcome computed from a disclosed deterministic game rule.",
    "thought_experiment": "Explanation or proposed move not actually executed.",
    "illustrative_tactical_scene": "Fictional action-world training vignette, not the real physics result.",
    "actual_human_play": "Requires independent human observation/consent; never inferred.",
    "provider_model_run": "Requires real connector tool receipt; a name in a role list is not execution evidence."
  },
  "privacy": {
    "contains_credentials": false,
    "server_write_api": false,
    "sensitive_user_data": false,
    "session_tracking": false
  },
  "practical_limits": {
    "large_language_models_may_make_mistakes": true,
    "game_save_client_side": true,
    "answers_public": true,
    "no_private_logs_available": true,
    "do_not_replay_queries_containing_secrets": true
  }
}
