{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://pointcast.xyz/internships/program.schema.json",
  "title": "PointCast Internship Program Script",
  "type": "object",
  "required": ["title", "canonical_url", "program_lead", "program_principles", "conduct_expectations", "weekly_operating_script", "learning_pathways", "tezos_collectible_system", "growth_practices"],
  "properties": {
    "title": { "type": "string" },
    "canonical_url": { "type": "string", "format": "uri" },
    "human_url": { "type": "string", "format": "uri" },
    "status": { "type": "string" },
    "program_lead": {
      "type": "object",
      "required": ["name", "role", "voice", "note"],
      "properties": {
        "name": { "type": "string" },
        "role": { "type": "string" },
        "voice": { "type": "string" },
        "note": { "type": "string" }
      }
    },
    "program_principles": { "type": "array", "items": { "type": "string" } },
    "conduct_expectations": { "type": "array", "items": { "type": "string" } },
    "nouns_interest_path": { "type": "object" },
    "participation_memory": { "type": "object" },
    "weekly_operating_script": {
      "type": "array",
      "items": {
        "type": "object",
        "required": ["day", "name", "actions"],
        "properties": {
          "day": { "type": "string" },
          "name": { "type": "string" },
          "actions": { "type": "array", "items": { "type": "string" } }
        }
      }
    },
    "learning_pathways": {
      "type": "array",
      "items": {
        "type": "object",
        "required": ["id", "title", "outcome", "starter_tasks", "capstone"],
        "properties": {
          "id": { "type": "string" },
          "title": { "type": "string" },
          "outcome": { "type": "string" },
          "starter_tasks": { "type": "array", "items": { "type": "string" } },
          "capstone": { "type": "string" }
        }
      }
    },
    "tezos_collectible_system": { "type": "object" },
    "growth_practices": { "type": "object" },
    "receipts": { "type": "array", "items": { "type": "string" } },
    "run_command": { "type": "string" }
  }
}
