{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "Simulation output record v1.1",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "response_id": {"type": "string"},
    "simulation_run_id": {"type": "string"},
    "persona_id": {"type": "string", "pattern": "^P[0-9]{7}$"},
    "report_id": {"type": "string"},
    "condition_id": {"type": "string"},
    "model_id": {"type": "string"},
    "prompt_id": {"type": "string"},
    "prompt_hash": {"type": "string"},
    "cache_key": {"type": "string"},
    "assignment_group": {"type": "string"},
    "outputs": {
      "title": "Simulation response outputs v1.1",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "understanding_score": {"type": "integer", "minimum": 1, "maximum": 5},
        "satisfaction_score": {"type": "integer", "minimum": 1, "maximum": 5},
        "personal_relevance_score": {"type": "integer", "minimum": 1, "maximum": 5},
        "trust_score": {"type": "integer", "minimum": 1, "maximum": 5},
        "anger_score": {"type": "integer", "minimum": 1, "maximum": 5},
        "policy_support_score": {"type": "integer", "minimum": 1, "maximum": 5},
        "perceived_accountability_score": {"type": "integer", "minimum": 1, "maximum": 5},
        "perceived_fairness_score": {"type": "integer", "minimum": 1, "maximum": 5},
        "perceived_local_fit_score": {"type": "integer", "minimum": 1, "maximum": 5},
        "cost_effectiveness_acceptance_score": {"type": "integer", "minimum": 1, "maximum": 5},
        "preferred_action": {
          "type": "string",
          "enum": ["continue", "revise", "expand", "reduce", "stop", "unsure"]
        },
        "response_mode": {
          "type": "string",
          "enum": [
            "user",
            "taxpayer",
            "family_caregiver",
            "worker",
            "local_resident",
            "professional",
            "general_citizen",
            "other"
          ]
        },
        "main_reason": {"type": "string", "maxLength": 180},
        "persona_link": {"type": "string", "maxLength": 180}
      },
      "required": [
        "understanding_score",
        "satisfaction_score",
        "personal_relevance_score",
        "trust_score",
        "anger_score",
        "policy_support_score",
        "perceived_accountability_score",
        "perceived_fairness_score",
        "perceived_local_fit_score",
        "cost_effectiveness_acceptance_score",
        "preferred_action",
        "response_mode",
        "main_reason",
        "persona_link"
      ]
    },
    "usage": {
      "type": ["object", "null"],
      "additionalProperties": true
    },
    "validation_problems": {
      "type": "array",
      "items": {"type": "string"}
    },
    "created_at_unix": {"type": "number"}
  },
  "required": [
    "response_id",
    "simulation_run_id",
    "persona_id",
    "report_id",
    "condition_id",
    "model_id",
    "prompt_id",
    "prompt_hash",
    "cache_key",
    "assignment_group",
    "outputs",
    "usage",
    "validation_problems",
    "created_at_unix"
  ]
}
