{
  "id": "place",
  "description": "Put a held block of cards into or onto a target at a position",
  "labels": {
    "en": "Place",
    "es": "Colocar",
    "fr": "Placer",
    "de": "Platzieren"
  },
  "family_ref": "true-handling",
  "aliases": [
    "insert",
    "put"
  ],
  "action_contract": {
    "parameters": {
      "position": {
        "required": false,
        "description": "Placement position within the target",
        "domain": "top | bottom | integer >= 1",
        "default": "top"
      }
    },
    "post_state_invariant": "The actor's whole held block leaves the hand and arrives at the target at position, keeping its own relative order; the target's other cards are otherwise unaffected.",
    "post_state": {
      "state_schema_ref": "https://tamaraspec.org/schema/tcs-playing-cards-state-0.1.json",
      "effects": [
        {
          "op": "move",
          "select": {
            "all": true
          },
          "from": "actor_hand",
          "to": "target",
          "arrival": "block",
          "at": {
            "param": "position"
          }
        }
      ]
    }
  }
}