{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://fitneo.ai/ai/catalog.schema.json",
  "title": "Open Pilates public metadata catalog",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "$schema",
    "schemaVersion",
    "contentKind",
    "contentUpdated",
    "publisher",
    "product",
    "coverage",
    "access",
    "sample",
    "resources",
    "content"
  ],
  "properties": {
    "$schema": {
      "const": "https://fitneo.ai/ai/catalog.schema.json"
    },
    "schemaVersion": {
      "const": "1.0"
    },
    "contentKind": {
      "const": "public_website_metadata"
    },
    "contentUpdated": {
      "type": "string",
      "format": "date"
    },
    "publisher": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "name",
        "id",
        "url",
        "email"
      ],
      "properties": {
        "name": {
          "const": "FitNeo"
        },
        "id": {
          "type": "string",
          "format": "uri"
        },
        "url": {
          "type": "string",
          "format": "uri"
        },
        "email": {
          "type": "string",
          "format": "email"
        }
      }
    },
    "product": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "name",
        "alternateName",
        "relationship",
        "url",
        "description",
        "audiences",
        "intelligence"
      ],
      "properties": {
        "name": {
          "const": "Open Pilates"
        },
        "alternateName": {
          "type": "string",
          "minLength": 1
        },
        "relationship": {
          "type": "string",
          "minLength": 1
        },
        "url": {
          "type": "string",
          "format": "uri"
        },
        "description": {
          "type": "string",
          "minLength": 1
        },
        "audiences": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1
          },
          "minItems": 1
        },
        "intelligence": {
          "type": "array",
          "minItems": 5,
          "maxItems": 5,
          "items": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "name",
              "basis",
              "description"
            ],
            "properties": {
              "name": {
                "type": "string",
                "minLength": 1
              },
              "basis": {
                "type": "string",
                "minLength": 1
              },
              "description": {
                "type": "string",
                "minLength": 1
              }
            }
          }
        }
      }
    },
    "coverage": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "snapshotDate",
        "studiosListed",
        "countriesAndTerritories",
        "studiosMeasuredHourly",
        "measurementCadence",
        "measurementStarted",
        "interpretation"
      ],
      "properties": {
        "snapshotDate": {
          "type": "string",
          "format": "date"
        },
        "studiosListed": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "minimum",
            "display"
          ],
          "properties": {
            "minimum": {
              "type": "integer",
              "minimum": 0
            },
            "display": {
              "type": "string",
              "minLength": 1
            }
          }
        },
        "countriesAndTerritories": {
          "type": "integer",
          "minimum": 1
        },
        "studiosMeasuredHourly": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "minimum",
            "display"
          ],
          "properties": {
            "minimum": {
              "type": "integer",
              "minimum": 0
            },
            "display": {
              "type": "string",
              "minLength": 1
            }
          }
        },
        "measurementCadence": {
          "const": "hourly"
        },
        "measurementStarted": {
          "type": "string",
          "format": "date"
        },
        "interpretation": {
          "type": "string",
          "minLength": 1
        }
      }
    },
    "access": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "type",
        "contactUrl",
        "email",
        "publicDatasetApi",
        "termsUrl",
        "publicContent",
        "industryData"
      ],
      "properties": {
        "type": {
          "const": "commercial_licensing"
        },
        "contactUrl": {
          "type": "string",
          "format": "uri"
        },
        "email": {
          "type": "string",
          "format": "email"
        },
        "publicDatasetApi": {
          "const": false
        },
        "termsUrl": {
          "type": "string",
          "format": "uri"
        },
        "publicContent": {
          "type": "string",
          "minLength": 1
        },
        "industryData": {
          "type": "string",
          "minLength": 1
        }
      }
    },
    "sample": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "classification",
        "url",
        "jsonUrl",
        "currency",
        "description"
      ],
      "properties": {
        "classification": {
          "const": "synthetic_illustration"
        },
        "url": {
          "type": "string",
          "format": "uri"
        },
        "jsonUrl": {
          "type": "string",
          "format": "uri"
        },
        "currency": {
          "const": "CAD"
        },
        "description": {
          "type": "string",
          "minLength": 1
        }
      }
    },
    "resources": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "catalog",
        "schema",
        "articles",
        "useCases",
        "readingGuide",
        "fullText",
        "sitemap",
        "feed"
      ],
      "properties": {
        "catalog": {
          "type": "string",
          "format": "uri"
        },
        "schema": {
          "type": "string",
          "format": "uri"
        },
        "articles": {
          "type": "string",
          "format": "uri"
        },
        "useCases": {
          "type": "string",
          "format": "uri"
        },
        "readingGuide": {
          "type": "string",
          "format": "uri"
        },
        "fullText": {
          "type": "string",
          "format": "uri"
        },
        "sitemap": {
          "type": "string",
          "format": "uri"
        },
        "feed": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    "content": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "articles",
        "useCases"
      ],
      "properties": {
        "articles": {
          "type": "array",
          "minItems": 1,
          "items": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "slug",
              "title",
              "description",
              "category",
              "url",
              "markdownUrl",
              "published",
              "modified"
            ],
            "properties": {
              "slug": {
                "type": "string",
                "minLength": 1
              },
              "title": {
                "type": "string",
                "minLength": 1
              },
              "description": {
                "type": "string",
                "minLength": 1
              },
              "category": {
                "type": "string",
                "minLength": 1
              },
              "url": {
                "type": "string",
                "format": "uri"
              },
              "markdownUrl": {
                "type": "string",
                "format": "uri"
              },
              "published": {
                "type": "string",
                "format": "date"
              },
              "modified": {
                "type": "string",
                "format": "date"
              }
            }
          }
        },
        "useCases": {
          "type": "array",
          "minItems": 4,
          "maxItems": 4,
          "items": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "slug",
              "audience",
              "title",
              "url",
              "markdownUrl",
              "contentKind"
            ],
            "properties": {
              "slug": {
                "type": "string",
                "minLength": 1
              },
              "audience": {
                "type": "string",
                "minLength": 1
              },
              "title": {
                "type": "string",
                "minLength": 1
              },
              "url": {
                "type": "string",
                "format": "uri"
              },
              "markdownUrl": {
                "type": "string",
                "format": "uri"
              },
              "contentKind": {
                "const": "illustrative_workflow"
              }
            }
          }
        }
      }
    }
  }
}
