{
  "additionalProperties": false,
  "description": "One parsed LLM turn response: the wire action plus private fields.\n\n`action`/`args` pass through opaquely \u2014 the kernel validates verbs and\nargument legality against the current `legal_actions`. Timed deck effects\nmay withdraw a move or attack but never add a verb. `diary` (required each\nturn) and `memory_note` are harness-only and dropped by `to_kernel_dict()`.",
  "properties": {
    "action": {
      "title": "Action",
      "type": "string"
    },
    "args": {
      "additionalProperties": true,
      "title": "Args",
      "type": "object"
    },
    "diary": {
      "title": "Diary",
      "type": "string"
    },
    "memory_note": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Memory Note"
    }
  },
  "required": [
    "action",
    "args",
    "diary"
  ],
  "title": "AgentAction",
  "type": "object"
}
