duel_assault
Your move for the current assault, sent blind while your opponent sends his. Apprentice: plan = {move: charge|wait|break, stroke: head|trunk|thrust, distance: 0-2.2 m, pause: 0-8 frames}. Master: frames = {"1": {part_id: {position?, rotation?}}, ...} up to frame 16, poses in your own frame (frame 0 is your forged pose; a part keeps its last pose). Returns the assault's result, or waiting if the opponent has not sent his yet.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| plan | No | Apprentice level: {"move": "charge", "stroke": "thrust", "distance": 1.2, "pause": 0} | |
| frames | No | {"1": {"sword": {"position": [..], "rotation": [..]}, ...}, "2": {...}} | |
| forge_handle | Yes | The forge_handle returned by enter_forge. |