← Files MightShapeARCHIVED FILE

schemas/internal-study.schema.json

2.46 KB · Sep 30, 2026 · 23:14 UTC

↓ Download file

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://design-council.local/schemas/internal-study.schema.json",
  "title": "Private internal research study definition",
  "type": "object",
  "additionalProperties": false,
  "required": ["id", "title", "research_goal", "topics_to_cover", "participant_source", "research_session", "project_exposure", "conflict_policy", "internal_context", "external_candidate", "consent_boundary", "created_at", "status"],
  "properties": {
    "id": {"type": "string", "pattern": "^STUDY-[0-9]{3,}$"},
    "title": {"type": "string", "minLength": 1},
    "research_goal": {"type": "string", "minLength": 1},
    "topics_to_cover": {"type": "array", "minItems": 1, "items": {"type": "string"}},
    "participant_source": {"$ref": "participant-source.schema.json"},
    "research_session": {"$ref": "research-session-type.schema.json"},
    "project_exposure": {"$ref": "project-exposure.schema.json"},
    "conflict_policy": {"$ref": "conflict-policy.schema.json"},
    "internal_context": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "full_challenge": {"type": ["string", "null"]},
        "proposed_solution": {"type": ["string", "null"]},
        "company_context": {"type": ["string", "null"]},
        "hypotheses": {"type": "array", "items": {"type": "string"}},
        "assumptions": {"type": "array", "items": {"type": "string"}},
        "strategic_rationale": {"type": ["string", "null"]}
      }
    },
    "external_candidate": {"type": "object"},
    "consent_boundary": {
      "type": "object",
      "additionalProperties": false,
      "required": ["project_owner_method_learning_opt_in", "participant_content_consent_required", "owner_opt_in_grants_participant_consent"],
      "properties": {
        "project_owner_method_learning_opt_in": {"type": "boolean"},
        "participant_content_consent_required": {"const": true},
        "owner_opt_in_grants_participant_consent": {"const": false},
        "participant_consent_version": {"type": ["string", "null"]}
      }
    },
    "sensitive_terms": {"type": "array", "items": {"type": "string", "minLength": 2}, "uniqueItems": true},
    "external_packet_ids": {"type": "array", "items": {"type": "string", "pattern": "^ESP-[0-9]{3,}$"}, "uniqueItems": true},
    "created_at": {"type": "string", "format": "date-time"},
    "status": {"enum": ["DRAFT", "READY_FOR_DISCLOSURE_REVIEW", "EXTERNAL_PACKET_APPROVED", "ACTIVE", "CLOSED"]}
  }
}

SHA-256: 7aa2cbd2b4dbf689be02bbed5fed650a75f1332209c8c8b4f389ae85bff963fd