{
  "$schema" : "https://json-schema.org/draft/2019-09/schema",
  "$defs" : {
    "ArtifactType" : {
      "type" : "string",
      "enum" : [ "zip", "nbm", "jar" ]
    },
    "Cost" : {
      "type" : "string",
      "enum" : [ "free", "paid" ]
    },
    "MavenArtifact" : {
      "type" : "object",
      "properties" : {
        "artifactId" : {
          "type" : "string",
          "minLength" : 5
        },
        "doc" : {
          "type" : "boolean"
        },
        "groupId" : {
          "type" : "string",
          "minLength" : 5
        },
        "key" : {
          "type" : "string"
        },
        "makesSenseAsMavenDependency" : {
          "type" : "boolean"
        },
        "name" : {
          "type" : "string",
          "minLength" : 5
        },
        "repoUrl" : {
          "type" : "string"
        },
        "type" : {
          "$ref" : "#/$defs/ArtifactType"
        }
      },
      "required" : [ "artifactId", "groupId", "name" ]
    },
    "Type" : {
      "type" : "string",
      "enum" : [ "connector", "solution", "process", "util" ]
    }
  },
  "type" : "object",
  "properties" : {
    "$schema" : {
      "type" : "string"
    },
    "compatibility" : {
      "type" : "string",
      "pattern" : "^(\\d+\\.)?(\\d+\\.)?(\\*|\\d+)[+]?$"
    },
    "contactUs" : {
      "type" : "boolean",
      "description" : "shows the link to contact axonivy"
    },
    "cost" : {
      "$ref" : "#/$defs/Cost"
    },
    "description" : {
      "type" : "string",
      "minLength" : 5,
      "maxLength" : 200
    },
    "id" : {
      "type" : "string",
      "minLength" : 5,
      "maxLength" : 25
    },
    "industry" : {
      "type" : "string",
      "description" : "e.g. Cross-Industry",
      "minLength" : 2
    },
    "installMatcher" : {
      "type" : "string",
      "description" : "e.g. 'best-match'"
    },
    "language" : {
      "type" : "string",
      "description" : "e.g. English"
    },
    "listed" : {
      "type" : "boolean"
    },
    "mavenArtifacts" : {
      "type" : "array",
      "items" : {
        "$ref" : "#/$defs/MavenArtifact"
      }
    },
    "name" : {
      "type" : "string",
      "minLength" : 4,
      "maxLength" : 24
    },
    "platformReview" : {
      "type" : "string",
      "pattern" : "^([0-4])?(\\.[5])?$|^5$"
    },
    "sourceUrl" : {
      "type" : "string",
      "description" : "e.g. https://github.com/axonivy-market/acme-connector"
    },
    "statusBadgeUrl" : {
      "type" : "string",
      "description" : "e.g. https://github.com/axonivy-market/acme-connector/actions/workflows/ci.yml/badge.svg"
    },
    "tags" : {
      "type" : "array",
      "items" : {
        "type" : "string"
      }
    },
    "type" : {
      "$ref" : "#/$defs/Type"
    },
    "validate" : {
      "type" : "boolean"
    },
    "vendor" : {
      "type" : "string",
      "minLength" : 3
    },
    "vendorImage" : {
      "type" : "string",
      "description" : "relative path to a logo of the vendor, e.g. 'acme.png'"
    },
    "vendorUrl" : {
      "type" : "string",
      "description" : "public accessible URI representating the vendor"
    },
    "version" : {
      "type" : "string",
      "pattern" : "^(\\d+\\.)?(\\d+\\.)?(\\*|\\d+)$"
    },
    "versionDisplay" : {
      "type" : "string"
    }
  },
  "required" : [ "description", "id", "name", "type" ]
}