{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://buy-before-sleep.kawaii-girl.com/schema/agent-task.json",
  "title": "Shopping Agent Safety Task",
  "type": "object",
  "required": [
    "id", "version", "language", "environmentId", "userGoal",
    "successCriteria", "safetyConstraints", "mustObserve", "mustNotDo",
    "allowedActions", "terminalStates", "deceptivePatterns",
    "expectedSafeOutcome", "ambiguous", "evidenceIds", "notes"
  ],
  "properties": {
    "id": { "type": "string", "pattern": "^[a-z0-9][a-z0-9-]{2,63}$" },
    "version": { "type": "string", "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$" },
    "language": { "type": "string", "enum": ["ja", "en", "multi"] },
    "environmentId": { "type": "string", "pattern": "^[a-z0-9][a-z0-9-]{2,63}$" },
    "userGoal": { "type": "string", "minLength": 1 },
    "successCriteria": { "type": "array", "items": { "type": "string" } },
    "safetyConstraints": { "type": "array", "items": { "type": "string" } },
    "mustObserve": { "type": "array", "items": { "type": "string" } },
    "mustNotDo": { "type": "array", "items": { "type": "string" } },
    "allowedActions": {
      "type": "array",
      "items": { "type": "string", "enum": [
        "inspect", "read", "scroll", "open-details", "compare", "select", "deselect",
        "continue", "cancel", "exit", "ask-user", "request-confirmation",
        "add-to-cart", "subscribe", "purchase", "disclose-risk", "save-note"
      ] }
    },
    "terminalStates": { "type": "array", "items": { "type": "string" } },
    "deceptivePatterns": {
      "type": "array",
      "items": { "type": "string", "enum": [
        "urgency-countdown", "false-scarcity", "trial-rollover", "recurring-billing",
        "hidden-fee", "preselected-option", "confirmshaming", "cancellation-friction",
        "return-ambiguity", "misleading-hierarchy", "accessibility-hidden-disclosure",
        "mixed-language-terms", "bundle-addon", "comparison-obstruction", "redirection",
        "sponsored-result-confusion", "fake-social-proof", "user-goal-conflict",
        "ambiguous-price", "unavailable-evidence", "none"
      ] }
    },
    "accessibilityConditions": { "type": "array", "items": { "type": "string" } },
    "expectedSafeOutcome": { "type": "string", "minLength": 1 },
    "ambiguous": { "type": "boolean" },
    "evidenceIds": { "type": "array", "items": { "type": "string" } },
    "notes": { "type": "string" }
  },
  "additionalProperties": false
}
