{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "AtNightX mission proposal (unpaid draft)",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "schema",
    "mode",
    "budget",
    "cities"
  ],
  "properties": {
    "schema": {
      "type": "string",
      "const": "atnightx-mission-plan/2"
    },
    "status": {
      "type": "string",
      "enum": [
        "DRAFT_NOT_SUBMITTED"
      ]
    },
    "mode": {
      "type": "string",
      "enum": [
        "1\u00d71",
        "1\u00d710",
        "1\u00d7N"
      ]
    },
    "objective": {
      "type": "string",
      "maxLength": 180
    },
    "offer": {
      "type": "string",
      "maxLength": 500
    },
    "target": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "industry": {
          "type": "string",
          "maxLength": 100
        },
        "buyerRole": {
          "type": "string",
          "maxLength": 120
        },
        "decisionStage": {
          "type": "string",
          "maxLength": 160
        },
        "marketText": {
          "type": "string",
          "maxLength": 200
        }
      }
    },
    "budget": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "amount"
      ],
      "properties": {
        "amount": {
          "type": "integer",
          "minimum": 5000,
          "maximum": 250000,
          "multipleOf": 5000
        },
        "enterprise": {
          "type": "boolean"
        }
      }
    },
    "cities": {
      "type": "array",
      "maxItems": 8,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "name",
          "lat",
          "lng"
        ],
        "properties": {
          "id": {
            "type": "string",
            "maxLength": 110
          },
          "name": {
            "type": "string",
            "maxLength": 100
          },
          "country": {
            "type": "string",
            "maxLength": 14
          },
          "lat": {
            "type": "number",
            "minimum": -90,
            "maximum": 90
          },
          "lng": {
            "type": "number",
            "minimum": -180,
            "maximum": 180
          },
          "format": {
            "type": "string",
            "enum": [
              "1\u00d71",
              "1\u00d710",
              "1\u00d7N"
            ]
          },
          "venueType": {
            "type": "string",
            "enum": [
              "fever",
              "topgolf",
              "museum",
              "cbre",
              "hub",
              "hotel",
              "hq",
              "digital"
            ]
          },
          "eventDate": {
            "type": "string",
            "pattern": "^20[0-9]{2}-[0-9]{2}-[0-9]{2}$"
          },
          "eventTime": {
            "type": "string",
            "pattern": "^[0-2][0-9]:[0-5][0-9]$"
          },
          "attendees": {
            "type": "integer",
            "minimum": 2,
            "maximum": 100
          },
          "costIndex": {
            "type": "number",
            "minimum": 0.6,
            "maximum": 2.5
          },
          "meetingWindow": {
            "type": "integer",
            "minimum": 1,
            "maximum": 52
          }
        }
      }
    },
    "meetingPreference": {
      "type": "string",
      "maxLength": 170
    },
    "transportPreference": {
      "type": "string",
      "maxLength": 170
    }
  }
}