{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "/schemas/3.1.0-rc.4/core/education-item.json",
  "title": "Education Item",
  "description": "An educational program or course within an education-type catalog. Carries the program details that platforms use for education ads and student recruitment campaigns. Maps to Google DynamicEducationAsset, schema.org Course, and similar formats.",
  "type": "object",
  "properties": {
    "program_id": {
      "type": "string",
      "description": "Unique identifier for this program or course."
    },
    "name": {
      "type": "string",
      "description": "Program or course name (e.g., 'MSc Computer Science', 'Digital Marketing Certificate')."
    },
    "school": {
      "type": "string",
      "description": "Institution or provider name."
    },
    "description": {
      "type": "string",
      "description": "Program description including curriculum highlights and outcomes."
    },
    "subject": {
      "type": "string",
      "description": "Subject area or field of study (e.g., 'computer-science', 'business', 'healthcare')."
    },
    "degree_type": {
      "type": "string",
      "enum": ["certificate", "associate", "bachelor", "master", "doctorate", "professional", "bootcamp"],
      "description": "Type of credential awarded."
    },
    "level": {
      "type": "string",
      "enum": ["beginner", "intermediate", "advanced"],
      "description": "Difficulty or prerequisite level."
    },
    "price": {
      "$ref": "/schemas/3.1.0-rc.4/core/price.json",
      "description": "Tuition or course fee."
    },
    "duration": {
      "type": "string",
      "description": "Program duration as a human-readable string (e.g., '4 weeks', '2 years', '6 months')."
    },
    "start_date": {
      "type": "string",
      "format": "date",
      "description": "Next available start date (ISO 8601 date)."
    },
    "language": {
      "type": "string",
      "description": "Language of instruction (e.g., 'en', 'nl', 'es')."
    },
    "modality": {
      "type": "string",
      "enum": ["online", "in_person", "hybrid"],
      "description": "Delivery format."
    },
    "location": {
      "type": "string",
      "description": "Campus or instruction location (e.g., 'Amsterdam, NL'). Omit for fully online programs."
    },
    "image_url": {
      "type": "string",
      "format": "uri",
      "description": "Program or institution image URL."
    },
    "url": {
      "type": "string",
      "format": "uri",
      "description": "Program landing page or enrollment URL."
    },
    "tags": {
      "type": "array",
      "description": "Tags for filtering (e.g., 'stem', 'scholarship-available', 'evening-classes').",
      "items": {
        "type": "string"
      },
      "minItems": 1
    },
    "assets": {
      "type": "array",
      "description": "Typed creative asset pools for this program. Uses the same OfferingAssetGroup structure as offering-type catalogs. Standard group IDs: 'images_landscape' (campus/program hero), 'images_vertical' (9:16 for Stories), 'logo' (institution logo). Enables formats to declare typed image requirements that map unambiguously to the right asset regardless of platform.",
      "items": {
        "$ref": "/schemas/3.1.0-rc.4/core/offering-asset-group.json"
      },
      "minItems": 1
    },
    "ext": {
      "$ref": "/schemas/3.1.0-rc.4/core/ext.json"
    }
  },
  "required": ["program_id", "name", "school"],
  "additionalProperties": true,
  "examples": [
    {
      "description": "University master's program",
      "data": {
        "program_id": "uva-msc-cs-2025",
        "name": "MSc Computer Science",
        "school": "University of Amsterdam",
        "description": "Two-year research master's covering AI, distributed systems, and software engineering. Taught in English with industry internship track.",
        "subject": "computer-science",
        "degree_type": "master",
        "level": "advanced",
        "price": { "amount": 2314, "currency": "EUR", "period": "year" },
        "duration": "2 years",
        "start_date": "2025-09-01",
        "language": "en",
        "modality": "in_person",
        "location": "Amsterdam, NL",
        "url": "https://www.uva.nl/programmes/masters/computer-science",
        "tags": ["stem", "research"]
      }
    },
    {
      "description": "Online professional certificate",
      "data": {
        "program_id": "acme-digital-mkt-cert",
        "name": "Digital Marketing Certificate",
        "school": "Acme Academy",
        "description": "8-week online program covering SEO, paid media, analytics, and social strategy.",
        "subject": "marketing",
        "degree_type": "certificate",
        "level": "beginner",
        "price": { "amount": 499, "currency": "USD" },
        "duration": "8 weeks",
        "modality": "online",
        "url": "https://academy.acme.com/digital-marketing",
        "tags": ["self-paced", "career-change"]
      }
    }
  ]
}
