{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/foundplay-io/json-schema/foundplay-io-roll-skill-request-schema.json",
  "title": "RollSkillRequest",
  "description": "Actor-bound skill check. Module computes the formula from the actor's skill modifier + proficiency.\n\n**Skill is dnd5e-specific.** Valid values: `acr` (Acrobatics), `ani` (Animal Handling), `arc` (Arcana), `ath` (Athletics), `dec` (Deception), `his` (History), `ins` (Insight), `itm` (Intimidation), `inv` (Investigation), `med` (Medicine), `nat` (Nature), `prc` (Perception), `prf` (Performance), `per` (Persuasion), `rel` (Religion), `slt` (Sleight of Hand), `ste` (Stealth), `sur` (Survival). Unknown codes are rejected at the API layer with 422.",
  "x-generated": "2026-10-30",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/foundplay-io-openapi.json#/components/schemas/RollSkillRequest",
  "properties": {
    "actor_id": {
      "description": "Foundry actor id within the calling tenant's world.",
      "minLength": 1,
      "type": "string"
    },
    "advantage": {
      "default": false,
      "description": "Roll with advantage (2d20kh1). Honoured by bridge module 8.13+; older modules ignore it. Rejected with 422 together with `disadvantage: true`.",
      "type": "boolean"
    },
    "disadvantage": {
      "default": false,
      "description": "Roll with disadvantage (2d20kl1). Honoured by bridge module 8.13+; older modules ignore it. Rejected with 422 together with `advantage: true`.",
      "type": "boolean"
    },
    "show_in_chat": {
      "default": false,
      "description": "Post the roll to the world's Foundry chat. Default false (silent).",
      "type": "boolean"
    },
    "skill": {
      "description": "dnd5e skill short code (see schema description for the full list).",
      "type": "string"
    }
  },
  "required": [
    "actor_id",
    "skill"
  ],
  "type": "object"
}