{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "Museum of One derived public web-record catalogue",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "schema_version": {
      "const": "1.0"
    },
    "scope": {
      "type": "string"
    },
    "source_registries": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "metadata_licence": {
      "type": "string"
    },
    "records": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "format": "uri",
            "pattern": "^https://www\\.museumofone\\.art/(?!ghost|members|account|signin|signup|preview|private)"
          },
          "url": {
            "type": "string",
            "format": "uri",
            "pattern": "^https://www\\.museumofone\\.art/(?!ghost|members|account|signin|signup|preview|private)"
          },
          "title": {
            "type": "string",
            "minLength": 1
          },
          "type": {
            "enum": [
              "WebPage",
              "Text"
            ]
          },
          "creators": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "name": {
                  "type": "string"
                },
                "role": {
                  "const": "page author"
                },
                "url": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "name",
                "role"
              ]
            }
          },
          "publisher": {
            "type": "string"
          },
          "dates": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "web_publication": {
                "type": "string",
                "pattern": "^\\d{4}(?:-\\d{2}(?:-\\d{2})?)?(?:T.*)?$"
              },
              "metadata_modification": {
                "type": "string",
                "pattern": "^\\d{4}(?:-\\d{2}(?:-\\d{2})?)?(?:T.*)?$"
              }
            },
            "required": []
          },
          "identifiers": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "doi_mentions": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "required": []
          },
          "description": {
            "type": "string"
          },
          "language": {
            "type": "string"
          },
          "rights": {
            "type": "string"
          },
          "subjects": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "relations": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "publication_records": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "citation_exports": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "required": []
          },
          "source": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "observation": {
                "type": "string"
              },
              "retrieved_at": {
                "type": "string",
                "format": "date-time"
              },
              "sha256": {
                "type": "string",
                "pattern": "^[a-f0-9]{64}$"
              }
            },
            "required": [
              "observation",
              "retrieved_at",
              "sha256"
            ]
          },
          "provenance": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "value": {},
                  "evidence": {
                    "type": "string",
                    "format": "uri",
                    "pattern": "^https://www\\.museumofone\\.art/(?!ghost|members|account|signin|signup|preview|private)"
                  },
                  "verified_at": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "method": {
                    "type": "string",
                    "minLength": 1
                  },
                  "authority": {
                    "type": "string",
                    "minLength": 1
                  },
                  "uncertainty": {
                    "type": "string",
                    "minLength": 1
                  },
                  "verifier": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "value",
                  "evidence",
                  "verified_at",
                  "method",
                  "authority",
                  "uncertainty",
                  "verifier"
                ]
              },
              "url": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "value": {},
                  "evidence": {
                    "type": "string",
                    "format": "uri",
                    "pattern": "^https://www\\.museumofone\\.art/(?!ghost|members|account|signin|signup|preview|private)"
                  },
                  "verified_at": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "method": {
                    "type": "string",
                    "minLength": 1
                  },
                  "authority": {
                    "type": "string",
                    "minLength": 1
                  },
                  "uncertainty": {
                    "type": "string",
                    "minLength": 1
                  },
                  "verifier": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "value",
                  "evidence",
                  "verified_at",
                  "method",
                  "authority",
                  "uncertainty",
                  "verifier"
                ]
              },
              "title": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "value": {},
                  "evidence": {
                    "type": "string",
                    "format": "uri",
                    "pattern": "^https://www\\.museumofone\\.art/(?!ghost|members|account|signin|signup|preview|private)"
                  },
                  "verified_at": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "method": {
                    "type": "string",
                    "minLength": 1
                  },
                  "authority": {
                    "type": "string",
                    "minLength": 1
                  },
                  "uncertainty": {
                    "type": "string",
                    "minLength": 1
                  },
                  "verifier": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "value",
                  "evidence",
                  "verified_at",
                  "method",
                  "authority",
                  "uncertainty",
                  "verifier"
                ]
              },
              "type": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "value": {},
                  "evidence": {
                    "type": "string",
                    "format": "uri",
                    "pattern": "^https://www\\.museumofone\\.art/(?!ghost|members|account|signin|signup|preview|private)"
                  },
                  "verified_at": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "method": {
                    "type": "string",
                    "minLength": 1
                  },
                  "authority": {
                    "type": "string",
                    "minLength": 1
                  },
                  "uncertainty": {
                    "type": "string",
                    "minLength": 1
                  },
                  "verifier": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "value",
                  "evidence",
                  "verified_at",
                  "method",
                  "authority",
                  "uncertainty",
                  "verifier"
                ]
              },
              "creators": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "value": {},
                  "evidence": {
                    "type": "string",
                    "format": "uri",
                    "pattern": "^https://www\\.museumofone\\.art/(?!ghost|members|account|signin|signup|preview|private)"
                  },
                  "verified_at": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "method": {
                    "type": "string",
                    "minLength": 1
                  },
                  "authority": {
                    "type": "string",
                    "minLength": 1
                  },
                  "uncertainty": {
                    "type": "string",
                    "minLength": 1
                  },
                  "verifier": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "value",
                  "evidence",
                  "verified_at",
                  "method",
                  "authority",
                  "uncertainty",
                  "verifier"
                ]
              },
              "publisher": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "value": {},
                  "evidence": {
                    "type": "string",
                    "format": "uri",
                    "pattern": "^https://www\\.museumofone\\.art/(?!ghost|members|account|signin|signup|preview|private)"
                  },
                  "verified_at": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "method": {
                    "type": "string",
                    "minLength": 1
                  },
                  "authority": {
                    "type": "string",
                    "minLength": 1
                  },
                  "uncertainty": {
                    "type": "string",
                    "minLength": 1
                  },
                  "verifier": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "value",
                  "evidence",
                  "verified_at",
                  "method",
                  "authority",
                  "uncertainty",
                  "verifier"
                ]
              },
              "dates": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "value": {},
                  "evidence": {
                    "type": "string",
                    "format": "uri",
                    "pattern": "^https://www\\.museumofone\\.art/(?!ghost|members|account|signin|signup|preview|private)"
                  },
                  "verified_at": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "method": {
                    "type": "string",
                    "minLength": 1
                  },
                  "authority": {
                    "type": "string",
                    "minLength": 1
                  },
                  "uncertainty": {
                    "type": "string",
                    "minLength": 1
                  },
                  "verifier": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "value",
                  "evidence",
                  "verified_at",
                  "method",
                  "authority",
                  "uncertainty",
                  "verifier"
                ]
              },
              "identifiers": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "value": {},
                  "evidence": {
                    "type": "string",
                    "format": "uri",
                    "pattern": "^https://www\\.museumofone\\.art/(?!ghost|members|account|signin|signup|preview|private)"
                  },
                  "verified_at": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "method": {
                    "type": "string",
                    "minLength": 1
                  },
                  "authority": {
                    "type": "string",
                    "minLength": 1
                  },
                  "uncertainty": {
                    "type": "string",
                    "minLength": 1
                  },
                  "verifier": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "value",
                  "evidence",
                  "verified_at",
                  "method",
                  "authority",
                  "uncertainty",
                  "verifier"
                ]
              },
              "description": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "value": {},
                  "evidence": {
                    "type": "string",
                    "format": "uri",
                    "pattern": "^https://www\\.museumofone\\.art/(?!ghost|members|account|signin|signup|preview|private)"
                  },
                  "verified_at": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "method": {
                    "type": "string",
                    "minLength": 1
                  },
                  "authority": {
                    "type": "string",
                    "minLength": 1
                  },
                  "uncertainty": {
                    "type": "string",
                    "minLength": 1
                  },
                  "verifier": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "value",
                  "evidence",
                  "verified_at",
                  "method",
                  "authority",
                  "uncertainty",
                  "verifier"
                ]
              },
              "language": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "value": {},
                  "evidence": {
                    "type": "string",
                    "format": "uri",
                    "pattern": "^https://www\\.museumofone\\.art/(?!ghost|members|account|signin|signup|preview|private)"
                  },
                  "verified_at": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "method": {
                    "type": "string",
                    "minLength": 1
                  },
                  "authority": {
                    "type": "string",
                    "minLength": 1
                  },
                  "uncertainty": {
                    "type": "string",
                    "minLength": 1
                  },
                  "verifier": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "value",
                  "evidence",
                  "verified_at",
                  "method",
                  "authority",
                  "uncertainty",
                  "verifier"
                ]
              },
              "rights": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "value": {},
                  "evidence": {
                    "type": "string",
                    "format": "uri",
                    "pattern": "^https://www\\.museumofone\\.art/(?!ghost|members|account|signin|signup|preview|private)"
                  },
                  "verified_at": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "method": {
                    "type": "string",
                    "minLength": 1
                  },
                  "authority": {
                    "type": "string",
                    "minLength": 1
                  },
                  "uncertainty": {
                    "type": "string",
                    "minLength": 1
                  },
                  "verifier": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "value",
                  "evidence",
                  "verified_at",
                  "method",
                  "authority",
                  "uncertainty",
                  "verifier"
                ]
              },
              "subjects": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "value": {},
                  "evidence": {
                    "type": "string",
                    "format": "uri",
                    "pattern": "^https://www\\.museumofone\\.art/(?!ghost|members|account|signin|signup|preview|private)"
                  },
                  "verified_at": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "method": {
                    "type": "string",
                    "minLength": 1
                  },
                  "authority": {
                    "type": "string",
                    "minLength": 1
                  },
                  "uncertainty": {
                    "type": "string",
                    "minLength": 1
                  },
                  "verifier": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "value",
                  "evidence",
                  "verified_at",
                  "method",
                  "authority",
                  "uncertainty",
                  "verifier"
                ]
              },
              "relations": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "value": {},
                  "evidence": {
                    "type": "string",
                    "format": "uri",
                    "pattern": "^https://www\\.museumofone\\.art/(?!ghost|members|account|signin|signup|preview|private)"
                  },
                  "verified_at": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "method": {
                    "type": "string",
                    "minLength": 1
                  },
                  "authority": {
                    "type": "string",
                    "minLength": 1
                  },
                  "uncertainty": {
                    "type": "string",
                    "minLength": 1
                  },
                  "verifier": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "value",
                  "evidence",
                  "verified_at",
                  "method",
                  "authority",
                  "uncertainty",
                  "verifier"
                ]
              }
            },
            "required": [
              "id",
              "url",
              "title",
              "type",
              "creators",
              "publisher",
              "dates",
              "identifiers",
              "description",
              "language",
              "rights",
              "subjects",
              "relations"
            ]
          }
        },
        "required": [
          "id",
          "url",
          "title",
          "type",
          "creators",
          "publisher",
          "dates",
          "identifiers",
          "description",
          "language",
          "rights",
          "subjects",
          "relations",
          "source",
          "provenance"
        ]
      }
    }
  },
  "required": [
    "schema_version",
    "scope",
    "source_registries",
    "metadata_licence",
    "records"
  ]
}
