{
  "type": "VirtualLocation",
  "derivedFrom": "https://pending.schema.org/VirtualLocation",
  "hasId": false,
  "requiredFields":[
    "type"
  ],
  "requiredOptions": [
    {
      "description": [
        "A data publisher must provide either a `name`, `description` or `url` for the `VirtualLocation`."
      ],
      "options": [
        "name",
        "description",
        "url"
      ]
    }
  ],
  "inSpec": [
    "type",
    "name",
    "description",
    "url",
    "accessId",
    "accessCode"
  ],
  "fields": {
    "type": {
      "fieldName": "type",
      "requiredType": "https://schema.org/Text",
      "requiredContent": "VirtualLocation"
    },
    "name": {
      "fieldName": "name",
      "sameAs": "https://schema.org/name",
      "requiredType": "https://schema.org/Text",
      "example": "Zoom",
      "description": [
        "The name of the service that is providing remote access to the Opportunity."
      ]
    },
    "description": {
      "fieldName": "description",
      "sameAs": "https://schema.org/description",
      "requiredType": "https://schema.org/Text",
      "example": "Please log into Zoom a few minutes before the event, and mute your mic while you wait for the session to start.",
      "description": [
        "A plain text description of the live stream, including any instructions to join. This description must not include HTML or other markup."
      ]
    },
    "url": {
      "fieldName": "url",
      "sameAs": "https://schema.org/url",
      "requiredType": "https://schema.org/URL",
      "example": "https://zoom.us/room/3fbCs0GVjgQ",
      "description": [
        "The URL that enables remote access to the Opportunity, which should include encoded access credentials where possible."
      ]
    },
    "accessId": {
      "fieldName": "accessId",
      "sameAs": "https://openactive.io/accessId",
      "requiredType": "https://schema.org/Text",
      "example": "123456789",
      "description": [
        "The identifier required to access the `VirtualLocation` from any device, without requiring the URL, e.g. the meeting ID."
      ]
    },
    "accessCode": {
      "fieldName": "accessCode",
      "sameAs": "https://schema.org/accessCode",
      "requiredType": "https://schema.org/Text",
      "example": "211277",
      "description": [
        "The password or pin required to access the `VirtualLocation` from any device, without requiring the URL, e.g. the meeting password."
      ]
    }
  }
}
