From fda03b116db835c58b8e979a38fac71183a49172 Mon Sep 17 00:00:00 2001 From: Juan Cruz Viotti Date: Fri, 7 Feb 2025 20:29:07 -0400 Subject: [PATCH] Benchmark schema framing and bundling (#1535) Signed-off-by: Juan Cruz Viotti --- benchmark/CMakeLists.txt | 10 +- benchmark/jsonschema.cc | 36 + benchmark/schemas/2019_09_omc_json_v2.json | 4484 +++++++++++++++++ .../sourcemeta/core/jsonschema_frame.h | 4 +- 4 files changed, 4531 insertions(+), 3 deletions(-) create mode 100644 benchmark/jsonschema.cc create mode 100644 benchmark/schemas/2019_09_omc_json_v2.json diff --git a/benchmark/CMakeLists.txt b/benchmark/CMakeLists.txt index 0c048c8b9..315bb7a50 100644 --- a/benchmark/CMakeLists.txt +++ b/benchmark/CMakeLists.txt @@ -12,10 +12,13 @@ if(SOURCEMETA_CORE_JSONPOINTER) list(APPEND BENCHMARK_SOURCES jsonpointer.cc) endif() +if(SOURCEMETA_CORE_JSONSCHEMA) + list(APPEND BENCHMARK_SOURCES jsonschema.cc) +endif() + if(BENCHMARK_SOURCES) sourcemeta_googlebenchmark(NAMESPACE sourcemeta PROJECT core SOURCES ${BENCHMARK_SOURCES}) - target_compile_definitions(sourcemeta_core_benchmark PRIVATE CURRENT_DIRECTORY="${CMAKE_CURRENT_SOURCE_DIR}") @@ -34,6 +37,11 @@ if(BENCHMARK_SOURCES) PRIVATE sourcemeta::core::jsonpointer) endif() + if(SOURCEMETA_CORE_JSONSCHEMA) + target_link_libraries(sourcemeta_core_benchmark + PRIVATE sourcemeta::core::jsonschema) + endif() + add_custom_target(benchmark_all COMMAND sourcemeta_core_benchmark DEPENDS sourcemeta_core_benchmark diff --git a/benchmark/jsonschema.cc b/benchmark/jsonschema.cc new file mode 100644 index 000000000..56f358ba3 --- /dev/null +++ b/benchmark/jsonschema.cc @@ -0,0 +1,36 @@ +#include + +#include // assert +#include // std::filesystem + +#include +#include + +static void Schema_Frame_OMC_Full(benchmark::State &state) { + const auto schema{ + sourcemeta::core::read_json(std::filesystem::path{CURRENT_DIRECTORY} / + "schemas" / "2019_09_omc_json_v2.json")}; + + for (auto _ : state) { + sourcemeta::core::SchemaFrame frame; + frame.analyse(schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::schema_official_resolver); + benchmark::DoNotOptimize(frame); + } +} + +static void Schema_Bundle_Meta_2020_12(benchmark::State &state) { + for (auto _ : state) { + state.PauseTiming(); + auto schema{sourcemeta::core::schema_official_resolver( + "https://json-schema.org/draft/2020-12/schema") + .value()}; + state.ResumeTiming(); + sourcemeta::core::bundle(schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::schema_official_resolver); + benchmark::DoNotOptimize(schema); + } +} + +BENCHMARK(Schema_Frame_OMC_Full); +BENCHMARK(Schema_Bundle_Meta_2020_12); diff --git a/benchmark/schemas/2019_09_omc_json_v2.json b/benchmark/schemas/2019_09_omc_json_v2.json new file mode 100644 index 000000000..0e38da56b --- /dev/null +++ b/benchmark/schemas/2019_09_omc_json_v2.json @@ -0,0 +1,4484 @@ +{ + "$schema": "https://json-schema.org/draft/2019-09/schema", + "$id": "https://movielabs.com/omc/json/schema/v2.0", + "title": "OMC-JSON schema v2.0", + "oneOf": [ + {"$ref": "#/$defs/core/properties/rootObject"}, + {"$ref": "#/$defs/core/properties/rootArray"} + ], + "$defs": { + "Asset": { + "type": "object", + "title": "Asset Definitions", + "properties": { + "Asset": { + "type": ["object"], + "title": "Asset", + "description": "A physical or digital object or collection of objects specific to the creation of the Creative Work.", + "properties": { + "schemaVersion": { + "title": "Schema Version", + "$ref": "#/$defs/core/properties/schemaVersion" + }, + "entityType": { + "type": "string", + "title": "Entity Type", + "const": "Asset" + }, + "identifier": { + "title": "Identifier", + "$ref": "#/$defs/Utility/properties/identifier" + }, + "name": { + "type": [ + "string", + "null" + ], + "title": "Asset name", + "description": "A human readable name for the asset" + }, + "description": { + "type": [ + "string", + "null" + ], + "title": "Asset description", + "description": "A human readable description of the asset" + }, + "version": { + "type": "object", + "title": "Asset Version Information", + "description": "A particular form, variant, or representation of an Asset that differs in some way from its source Asset.", + "additionalProperties": false, + "properties": { + "versionNumber": {"$ref": "#/$defs/Utility/properties/versionNumber"}, + "name": { + "type": "string", + "title": "A name for this specific version of the Asset" + }, + "description": { + "type": [ + "string", + "null" + ], + "title": "Asset description", + "description": "A human readable description of the version" + }, + "annotation": { + "type": "array", + "items": {"$ref": "#/$defs/Utility/properties/note"}, + "description": "A collection of notes specific to this version" + }, + "DerivationOf": { + "oneOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/Asset/properties/Asset"} + ] + }, + "RevisionOf": { + "oneOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/Asset/properties/Asset"} + ] + }, + "VariantOf": { + "oneOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/Asset/properties/Asset"} + ] + }, + "Alternative": { + "type": "array", + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/Asset/properties/Asset"} + ] + } + }, + "Derivation": { + "type": "array", + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/Asset/properties/Asset"} + ] + } + }, + "Revision": { + "type": "array", + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/Asset/properties/Asset"} + ] + } + }, + "Variant": { + "type": "array", + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/Asset/properties/Asset"} + ] + } + }, + "customData": {"$ref": "#/$defs/core/properties/customData"} + } + }, + "provenance": { + "$ref": "#/$defs/Utility/properties/provenance", + "title": "Provenance" + }, + "Asset": { + "type": [ + "array", + "null" + ], + "title": "Asset Group", + "description": "The set of Assets that make up an an asset group and has a structuralType of 'assetGroup'", + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/Asset/properties/Asset"} + ] + } + }, + "AssetSC": { + "title": "Structural Characteristics", + "oneOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/Asset/properties/AssetSC"} + ] + }, + "assetFC": { + "title": "Asset Functional Characteristics", + "$ref": "#/$defs/Asset/properties/assetFC" + }, + "Context": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Context"} + ] + } + }, + "Depiction": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Depiction"} + ] + } + }, + "customData": { + "title": "Custom Data", + "$ref": "#/$defs/core/properties/customData" + }, + "entityInfo": { + "title": "Entity Information", + "$ref": "#/$defs/core/properties/entityInfo" + } + }, + "additionalProperties": false, + "required": [ + "entityType", + "identifier", + "schemaVersion" + ] + }, + "AssetSC": { + "type": "object", + "title": "Asset Structural Characteristics", + "properties": { + "schemaVersion": { + "title": "Schema Version", + "$ref": "#/$defs/core/properties/schemaVersion" + }, + "entityType": { + "type": "string", + "title": "Entity Type", + "const": "AssetSC" + }, + "identifier": {"$ref": "#/$defs/Utility/properties/identifier"}, + "version": { + "type": "object", + "properties": { + "versionNumber": {"$ref": "#/$defs/Utility/properties/versionNumber"}, + "name": { + "type": "string", + "title": "A name for this specific version of the Asset" + }, + "description": { + "type": [ + "string", + "null" + ], + "title": "Asset description", + "description": "A human readable description of the version" + }, + "annotation": { + "type": "array", + "items": {"$ref": "#/$defs/Utility/properties/note"}, + "description": "A collection of notes specific to this version" + }, + "DerivationOf": { + "oneOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/Asset/properties/AssetSC"} + ] + }, + "RepresentationOf": { + "oneOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/Asset/properties/AssetSC"} + ] + }, + "RevisionOf": { + "oneOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/Asset/properties/AssetSC"} + ] + }, + "Deriviation": { + "type": "array", + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/Asset/properties/AssetSC"} + ] + } + }, + "Representation": { + "type": "array", + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/Asset/properties/AssetSC"} + ] + } + }, + "Revision": { + "type": "array", + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/Asset/properties/AssetSC"} + ] + } + }, + "customData": {"$ref": "#/$defs/core/properties/customData"} + }, + "additionalProperties": false, + "title": "Asset Structural Version Information", + "description": "A particular form, variant, or representation of an Asset that differs in some way from its source Asset." + }, + "provenance": { + "$ref": "#/$defs/Utility/properties/provenance", + "title": "Provenance" + }, + "name": { + "type": [ + "string", + "null" + ], + "title": "Participant name", + "description": "A human readable name for the participant, primarily for use as a label" + }, + "description": { + "type": [ + "string", + "null" + ], + "title": "Description", + "description": "A brief description of the participant" + }, + "structuralType": { + "type": [ + "string", + "null" + ], + "title": "Structural Type", + "description": "A structured description of the the assets form", + "examples": [ + "assetGroup", + "digital.image", + "analog.movingImage" + ] + }, + "structuralProperties": { + "type": [ + "object", + "null" + ], + "title": "Structural Properties", + "description": "A set of properties that describe the asset in this form", + "properties": { + "customData": {"$ref": "#/$defs/core/properties/customData"}, + "linkset": {"$ref": "#/$defs/Asset/properties/AssetSC/$defs/linkset"}, + "fileDetails": {"$ref": "#/$defs/Asset/properties/AssetSC/$defs/fileDetails"}, + "dimensions": {"$ref": "#/$defs/Asset/properties/AssetSC/$defs/dimensions"}, + "assetGroup": {"$ref": "#/$defs/Asset/properties/AssetSC/$defs/assetGroup"} + }, + "additionalProperties": false + }, + "isAnalog": { + "type": [ + "boolean", + "null" + ], + "title": "Is Analog", + "description": "True if the Asset is an Analog Asset." + }, + "Carrier": { + "title": "Carrier", + "description": "For describing the physical storage device on which the digital assence is stored", + "oneOf": [ + {"type": "null"}, + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/Infrastructure/properties/Infrastructure"} + ] + }, + "customData": {"$ref": "#/$defs/core/properties/customData"}, + "entityInfo": { + "title": "Entity Information", + "$ref": "#/$defs/core/properties/entityInfo" + } + }, + "additionalProperties": false, + "required": [ + "entityType", + "identifier", + "schemaVersion" + ], + "description": "Describes the form of an Asset along with the attributes specific to that asset’s form", + "$defs": { + "linkset": { + "type": "object", + "properties": { + "recordType": { + "type": [ + "string", + "null" + ] + }, + "mediaType": { + "type": [ + "string", + "null" + ] + } + }, + "additionalProperties": false, + "title": "Linkset", + "description": "When used with resolution system returning a linkset additional information can help disambiguate multiple linksets in the response." + }, + "fileDetails": { + "type": "object", + "properties": { + "fileName": { + "type": [ + "string", + "null" + ] + }, + "filePath": { + "type": [ + "string", + "null" + ] + }, + "fileExtension": { + "type": [ + "string", + "null" + ] + }, + "mediaType": { + "type": [ + "string", + "null" + ] + } + }, + "additionalProperties": false, + "title": "File Details", + "description": "Where opaque identifiers are used it can be useful to express naming for use in traditional file systems" + }, + "dimensions": {"$ref": "#/$defs/Utility/properties/unitOfMeasurement/properties/dimensions"}, + "assetGroup": { + "type": "object", + "properties": { + "isOrdered": { + "type": [ + "boolean", + "null" + ] + } + }, + "additionalProperties": false, + "title": "Asset Group", + "description": "Structural properties of an Asset Group" + } + } + }, + "assetFC": { + "oneOf": [ + { + "type": "null", + "description": "Allow for null" + }, + { + "$ref": "#/$defs/Asset/properties/assetFC/$defs/empty", + "title": "Allow for empty object, no functional characteristics" + }, + { + "$ref": "#/$defs/Asset/properties/assetFC/$defs/generic", + "title": "A generic schema allowing any functional type and properties" + }, + { + "$ref": "#/$defs/Asset/properties/assetFC/$defs/scd", + "title": "Functional characteristics for a Sequence Chronology Descriptor" + } + ], + "title": "Asset Functional Characteristics", + "description": "Describes the use or purpose of an Asset within the production process", + "$defs": { + "empty": { + "type": "object", + "additionalProperties": false, + "properties": { + "customData": {"$ref": "#/$defs/core/properties/customData"} + } + }, + "generic": { + "type": "object", + "additionalProperties": false, + "properties": { + "functionalType": { + "type": "string", + "not": { + "enum": ["scd"] + } + }, + "functionalProperties": { + "type": [ + "object", + "null" + ], + "additionalProperties": true + }, + "customData": {"$ref": "#/$defs/core/properties/customData"} + }, + "required": ["functionalType"] + }, + "scd": { + "type": "object", + "properties": { + "functionalType": { + "type": "string", + "const": "scd" + }, + "functionalProperties": { + "type": "object", + "properties": { + "component": { + "type": "array", + "items": { + "type": "object", + "properties": { + "sourceStart": { + "type": [ + "string", + "null" + ] + }, + "sourceEnd": { + "type": [ + "string", + "null" + ] + }, + "recordStart": { + "type": [ + "string", + "null" + ] + }, + "recordEnd": { + "type": [ + "string", + "null" + ] + }, + "duration": { + "type": [ + "string", + "null" + ] + }, + "Shot": { + "type": "object", + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/Asset/properties/Asset"} + ] + } + } + } + } + }, + "additionalProperties": false + }, + "customData": {"$ref": "#/$defs/core/properties/customData"} + }, + "additionalProperties": false, + "required": ["functionalType"] + } + } + } + }, + "additionalProperties": false + }, + "Infrastructure": { + "type": "object", + "properties": { + "Infrastructure": { + "type": "object", + "properties": { + "schemaVersion": { + "title": "Schema Version", + "$ref": "#/$defs/core/properties/schemaVersion" + }, + "entityInfo": { + "title": "Entity Information", + "$ref": "#/$defs/core/properties/entityInfo" + }, + "entityType": { + "type": "string", + "title": "Entity Type", + "const": "Infrastructure" + }, + "identifier": { + "title": "Identifier", + "$ref": "#/$defs/Utility/properties/identifier" + }, + "name": { + "type": [ + "string", + "null" + ], + "title": "Asset name", + "description": "A human readable name for the asset" + }, + "description": { + "type": [ + "string", + "null" + ], + "title": "Asset description", + "description": "A human readable description of the asset" + }, + "customData": {"$ref": "#/$defs/core/properties/customData"}, + "InfrastructureSC": { + "title": "Structural Characteristics", + "$ref": "#/$defs/Infrastructure/properties/InfrastructureSC" + }, + "infrastructureFC": { + "title": "Functional Characteristics", + "$ref": "#/$defs/Infrastructure/properties/infrastructureFC" + }, + "Context": { + "title": "Asset Context", + "$ref": "#/$defs/MediaCreationContext/properties/Context" + } + }, + "additionalProperties": true, + "required": [ + "entityType", + "identifier", + "schemaVersion" + ], + "title": "Infrastructure", + "description": "The underlying systems and framework required for the production of the Creative Work; it is generally not specific to a particular Creative Work." + }, + "InfrastructureSC": { + "type": "object", + "title": "Infrastructure Structural Characteristics", + "properties": { + "schemaVersion": { + "title": "Schema Version", + "$ref": "#/$defs/core/properties/schemaVersion" + }, + "entityType": { + "type": "string", + "title": "Entity Type", + "const": "InfrastructureSC" + }, + "identifier": {"$ref": "#/$defs/Utility/properties/identifier"}, + "structuralType": { + "type": [ + "string", + "null" + ], + "title": "Structural Type", + "description": "A structured description of the the assets form", + "examples": [ + "assetGroup", + "digital.image", + "analog.movingImage" + ] + }, + "structuralProperties": { + "type": [ + "object", + "null" + ], + "title": "Structural Properties", + "description": "A set of properties that describe the infrastructure in this form", + "properties": { + "customData": {"$ref": "#/$defs/core/properties/customData"} + }, + "additionalProperties": true + }, + "customData": {"$ref": "#/$defs/core/properties/customData"} + }, + "additionalProperties": false, + "required": [ + "entityType", + "identifier", + "schemaVersion" + ], + "description": "Describes the form of the Infrastructure along with the attributes specific to that infrastructure's form" + }, + "infrastructureFC": { + "type": "object", + "title": "Infrastructure Functional Characteristics", + "properties": { + "functionalType": { + "type": [ + "string", + "null" + ], + "title": "Functional Type", + "description": "The use or purpose of a Task within the production process." + }, + "functionalProperties": { + "type": [ + "object", + "null" + ], + "title": "Functional Properties", + "description": "A set of properties that describe the tasks functional use", + "properties": { + "customData": {"$ref": "#/$defs/core/properties/customData"} + }, + "additionalProperties": true + }, + "customData": {"$ref": "#/$defs/core/properties/customData"} + }, + "additionalProperties": true, + "description": "Describes the use or purpose of an Infrastructure within the production process" + } + }, + "title": "Infrastructure Definitions", + "additionalProperties": false + }, + "MediaCreationContext": { + "type": "object", + "properties": { + "Character": { + "type": "object", + "title": "Character", + "description": "A sentient entity (usually a person but not always) in the script whose specific identity is consequential to the narrative. A Character is generally identified by a specific name.", + "properties": { + "schemaVersion": { + "title": "Schema Version", + "$ref": "#/$defs/core/properties/schemaVersion" + }, + "entityType": { + "type": "string", + "title": "Entity Type", + "const": "Character" + }, + "identifier": {"$ref": "#/$defs/Utility/properties/identifier"}, + "name": { + "type": [ + "string", + "null" + ], + "title": "Asset name", + "description": "The primary name used for the character" + }, + "description": { + "type": [ + "string", + "null" + ], + "title": "Character Description", + "description": "A brief description of the character" + }, + "characterName": { + "title": "Character Name", + "$ref": "#/$defs/Utility/properties/completeName" + }, + "profile": { + "type": "object", + "title": "Profile", + "properties": { + "physicalCharacteristics": { + "type": "object", + "title": "Physical Characteristics", + "description": "Allows for the the description of certain physical characteristics on a character, things that might be useful to an art department, wardrobe or casting for example.", + "properties": { + "species": { + "type": "string", + "title": "Species", + "description": "A species to which this character belongs", + "examples": [ + "Human", + "Borg", + "Goblin", + "Frog" + ] + }, + "hairColor": { + "type": "string", + "title": "Hair Color", + "description": "The hair color of the character", + "examples": [ + "Brown", + "Pink", + "Blonde", + "" + ] + }, + "hairLength": { + "type": "string", + "title": "Hair Length", + "description": "The length of hair of the character" + }, + "eyeColor": { + "type": "string", + "title": "Eye Color", + "description": "The color of the characters eyes" + }, + "weight": { + "title": "weight", + "$ref": "#/$defs/Utility/properties/unitOfMeasurement/properties/weight" + }, + "height": { + "title": "height", + "$ref": "#/$defs/Utility/properties/unitOfMeasurement/properties/linearDistance" + } + }, + "additionalProperties": true + }, + "gender": {"$ref": "#/$defs/Utility/properties/gender"}, + "background": { + "type": "object", + "title": "background", + "additionalProperties": true + } + }, + "additionalProperties": false + }, + "customData": {"$ref": "#/$defs/core/properties/customData"}, + "Depiction": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Depiction"} + ] + } + }, + "Context": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Context"} + ] + } + }, + "entityInfo": { + "title": "Entity Information", + "$ref": "#/$defs/core/properties/entityInfo" + } + }, + "additionalProperties": false, + "required": [ + "entityType", + "identifier", + "schemaVersion" + ] + }, + "Context": { + "type": "object", + "title": "Context", + "properties": { + "schemaVersion": { + "title": "Schema Version", + "$ref": "#/$defs/core/properties/schemaVersion" + }, + "entityType": { + "type": "string", + "title": "Entity Type", + "const": "Context" + }, + "identifier": {"$ref": "#/$defs/Utility/properties/identifier"}, + "name": { + "type": [ + "string", + "null" + ], + "title": "Context name", + "description": "A human readable name for the Context" + }, + "description": { + "type": "object", + "title": "Description", + "description": "A brief description of the context" + }, + "contextType": { + "type": [ + "string", + "null" + ], + "title": "Context Type", + "description": "A classifiaction of the type of context represented", + "examples": [ + "narrative", + "production" + ] + }, + "Context": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + { + "type": "object", + "$ref": "#/$defs/MediaCreationContext/properties/Context" + } + ] + } + }, + "For": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/Asset/properties/Asset"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Character"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Context"}, + {"$ref": "#/$defs/MediaCreationContext/properties/CreativeWork"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Depiction"}, + {"$ref": "#/$defs/Participant/properties/Participant"}, + {"$ref": "#/$defs/MediaCreationContext/properties/SpecialAction"}, + {"$ref": "#/$defs/MediaCreationContext/properties/NarrativeAudio"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Effect"}, + {"$ref": "#/$defs/MediaCreationContext/properties/NarrativeLocation"}, + {"$ref": "#/$defs/MediaCreationContext/properties/NarrativeObject"}, + {"$ref": "#/$defs/MediaCreationContext/properties/NarrativeScene"}, + {"$ref": "#/$defs/MediaCreationContext/properties/NarrativeStyling"}, + {"$ref": "#/$defs/MediaCreationContext/properties/NarrativeWardrobe"}, + {"$ref": "#/$defs/MediaCreationContext/properties/ProductionLocation"}, + {"$ref": "#/$defs/MediaCreationContext/properties/ProductionScene"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Sequence"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Slate"} + ] + }, + "title": "Context For", + "description": "The entities for which this Context applies to" + }, + "customData": { + "title": "Custom Data", + "$ref": "#/$defs/core/properties/customData" + }, + "entityInfo": { + "title": "Entity Information", + "$ref": "#/$defs/core/properties/entityInfo" + }, + "contributor": { + "type": [ + "object", + "null" + ], + "properties": { + "Participant": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + { + "type": "object", + "$ref": "#/$defs/Participant/properties/Participant" + }, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + } + } + }, + "contributesTo": { + "type": [ + "object", + "null" + ], + "properties": { + "CreativeWork": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + { + "type": "object", + "$ref": "#/$defs/MediaCreationContext/properties/CreativeWork" + }, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + } + } + }, + "features": { + "type": [ + "object", + "null" + ], + "properties": { + "Character": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/MediaCreationContext/properties/Character"}, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + }, + "SpecialAction": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/MediaCreationContext/properties/SpecialAction"}, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + }, + "NarrativeAudio": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/MediaCreationContext/properties/NarrativeAudio"}, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + }, + "Effect": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/MediaCreationContext/properties/Effect"}, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + }, + "NarrativeLocation": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/MediaCreationContext/properties/NarrativeLocation"}, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + }, + "NarrativeObject": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/MediaCreationContext/properties/NarrativeObject"}, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + }, + "NarrativeStyling": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/MediaCreationContext/properties/NarrativeStyling"}, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + }, + "NarrativeWardrobe": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/MediaCreationContext/properties/NarrativeWardrobe"}, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + } + } + }, + "featuresIn": { + "type": [ + "object", + "null" + ], + "properties": { + "NarrativeScene": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + { + "type": "object", + "$ref": "#/$defs/MediaCreationContext/properties/NarrativeScene" + }, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + } + } + }, + "for": { + "type": [ + "object", + "null" + ], + "properties": { + "Asset": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/Asset/properties/Asset"}, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + }, + "CreativeWork": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/MediaCreationContext/properties/CreativeWork"}, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + }, + "NarrativeScene": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/MediaCreationContext/properties/NarrativeScene"}, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + }, + "ProductionScene": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/MediaCreationContext/properties/ProductionScene"}, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + }, + "Sequence": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/MediaCreationContext/properties/Sequence"}, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + }, + "Slate": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/MediaCreationContext/properties/Slate"}, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + } + } + }, + "has": { + "type": [ + "object", + "null" + ], + "properties": { + "Asset": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/Asset/properties/Asset"}, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + }, + "Infrastructure": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + { + "$ref": "#/$defs/Infrastructure/properties/Infrastructure", + "type": "object" + }, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + }, + "SpecialAction": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/MediaCreationContext/properties/SpecialAction"}, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + }, + "NarrativeLocation": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/MediaCreationContext/properties/NarrativeLocation"}, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + }, + "NarrativeScene": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/MediaCreationContext/properties/NarrativeScene"}, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + }, + "Participant": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + { + "$ref": "#/$defs/Participant/properties/Participant", + "type": "object" + }, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + }, + "ProductionScene": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/MediaCreationContext/properties/ProductionScene"}, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + }, + "Sequence": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + { + "$ref": "#/$defs/MediaCreationContext/properties/Sequence", + "type": "object" + }, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + }, + "Slate": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + { + "$ref": "#/$defs/MediaCreationContext/properties/Slate", + "type": "object" + }, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + } + } + }, + "neededBy": { + "type": [ + "object", + "null" + ], + "properties": { + "Character": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + { + "type": "object", + "$ref": "#/$defs/MediaCreationContext/properties/Character" + }, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + } + } + }, + "needs": { + "type": [ + "object", + "null" + ], + "properties": { + "NarrativeAudio": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + { + "type": "object", + "$ref": "#/$defs/MediaCreationContext/properties/NarrativeAudio" + }, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + }, + "SpecialAction": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + { + "type": "object", + "$ref": "#/$defs/MediaCreationContext/properties/SpecialAction" + }, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + }, + "Effect": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + { + "type": "object", + "$ref": "#/$defs/MediaCreationContext/properties/Effect" + }, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + }, + "NarrativeObject": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + { + "type": "object", + "$ref": "#/$defs/MediaCreationContext/properties/NarrativeObject" + }, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + }, + "NarrativeStyling": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + { + "type": "object", + "$ref": "#/$defs/MediaCreationContext/properties/NarrativeStyling" + }, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + }, + "NarrativeWardrobe": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + { + "type": "object", + "$ref": "#/$defs/MediaCreationContext/properties/NarrativeWardrobe" + }, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + } + } + }, + "releated": { + "type": [ + "object", + "null" + ], + "properties": { + "ProductionScene": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + { + "type": "object", + "$ref": "#/$defs/MediaCreationContext/properties/ProductionScene" + }, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + } + } + }, + "represents": { + "type": [ + "object", + "null" + ], + "properties": { + "NarrativeScene": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + { + "type": "object", + "$ref": "#/$defs/MediaCreationContext/properties/NarrativeScene" + }, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + } + } + }, + "representedBy": { + "type": [ + "object", + "null" + ], + "properties": { + "ProductionScene": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + { + "type": "object", + "$ref": "#/$defs/MediaCreationContext/properties/ProductionScene" + }, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + } + } + }, + "usedIn": { + "type": [ + "object", + "null" + ], + "properties": { + "Depiction": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + { + "type": "object", + "$ref": "#/$defs/MediaCreationContext/properties/Depiction" + }, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + }, + "ProductionLocation": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + { + "type": "object", + "$ref": "#/$defs/MediaCreationContext/properties/ProductionLocation" + }, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + }, + "ProductionScene": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + { + "type": "object", + "$ref": "#/$defs/MediaCreationContext/properties/ProductionScene" + }, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + } + } + }, + "uses": { + "type": [ + "object", + "null" + ], + "properties": { + "Asset": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + { + "type": "object", + "$ref": "#/$defs/Asset/properties/Asset" + }, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + }, + "Depiction": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + { + "type": "object", + "$ref": "#/$defs/MediaCreationContext/properties/Depiction" + }, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + }, + "Infrastructure": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + { + "type": "object", + "$ref": "#/$defs/Infrastructure/properties/Infrastructure" + }, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + }, + "ProductionLocation": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + { + "type": "object", + "$ref": "#/$defs/MediaCreationContext/properties/ProductionLocation" + }, + {"$ref": "#/$defs/core/properties/reference"} + ] + } + } + } + } + }, + "additionalProperties": true, + "required": [ + "entityType", + "identifier", + "schemaVersion" + ], + "description": "Informs scope within the construction process of a Creative Work." + }, + "CreativeWork": { + "type": "object", + "title": "Creative Work", + "properties": { + "schemaVersion": { + "title": "Schema Version", + "$ref": "#/$defs/core/properties/schemaVersion" + }, + "entityType": { + "type": "string", + "title": "Entity Type", + "const": "CreativeWork" + }, + "identifier": {"$ref": "#/$defs/Utility/properties/identifier"}, + "title": { + "type": "object", + "title": "Creative Work Title", + "properties": { + "workingTitle": { + "type": [ + "string", + "null" + ], + "title": "Creative Work Working Title", + "description": "The working title of the work" + }, + "officialTitle": { + "type": [ + "string", + "null" + ], + "title": "Creative Work Official Title", + "description": "The official title of the work" + }, + "internalTitle": { + "type": [ + "string", + "null" + ], + "title": "Creative Work Internal Title", + "description": "The internal title of the work" + } + }, + "additionalProperties": true + }, + "description": { + "type": [ + "string", + "null" + ], + "title": "Creative Work Description", + "description": "A brief description of the creative work" + }, + "approximateLength": { + "title": "Approximate Length", + "$ref": "#/$defs/Utility/properties/time/properties/periodInTime/properties/durationTime" + }, + "originalLanguage": { + "type": [ + "array", + "null" + ], + "title": "Original Languages", + "items": {"$ref": "#/$defs/Utility/properties/language"} + }, + "countryOfOrigin": { + "type": [ + "array", + "null" + ], + "title": "Country Of Origin", + "items": {"$ref": "#/$defs/Utility/properties/country"} + }, + "customData": { + "title": "Custom Data", + "$ref": "#/$defs/core/properties/customData" + }, + "Context": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Context"} + ] + } + }, + "entityInfo": { + "title": "Entity Information", + "$ref": "#/$defs/core/properties/entityInfo" + } + }, + "additionalProperties": false, + "required": [ + "entityType", + "identifier", + "schemaVersion" + ], + "description": "A uniquely identified production." + }, + "Depiction": { + "type": "object", + "title": "Depiction", + "properties": { + "schemaVersion": {"$ref": "#/$defs/core/properties/schemaVersion"}, + "entityType": { + "type": "string", + "title": "Entity Type", + "const": "Depiction" + }, + "identifier": {"$ref": "#/$defs/Utility/properties/identifier"}, + "name": { + "type": [ + "string", + "null" + ], + "title": "Depiction Styling Name", + "description": "A human readable name for the styling" + }, + "description": { + "type": [ + "string", + "null" + ], + "title": "Depiction Description", + "description": "A brief description of the depiction or portrayal" + }, + "depictionType": { + "type": "string", + "title": "Object type", + "description": "A categorization of the type of depiction", + "enum": [ + "depiction", + "portrayal" + ] + }, + "customData": {"$ref": "#/$defs/core/properties/customData"}, + "Depicts": { + "type": "object", + "oneOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Character"}, + {"$ref": "#/$defs/MediaCreationContext/properties/NarrativeLocation"}, + {"$ref": "#/$defs/MediaCreationContext/properties/NarrativeObject"}, + {"$ref": "#/$defs/MediaCreationContext/properties/NarrativeStyling"}, + {"$ref": "#/$defs/MediaCreationContext/properties/NarrativeWardrobe"} + ] + }, + "Depictor": { + "type": "object", + "oneOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/Asset/properties/Asset"}, + {"$ref": "#/$defs/Participant/properties/Participant"} + ] + }, + "Context": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Context"} + ] + } + }, + "entityInfo": { + "title": "Entity Information", + "$ref": "#/$defs/core/properties/entityInfo" + } + }, + "additionalProperties": false, + "required": [ + "entityType", + "identifier", + "schemaVersion" + ], + "description": "The representation of something from a narrative entity by a production entity in the Creative Work, specified or implied by the Script." + }, + "Effect": { + "type": "object", + "title": "Effect", + "properties": { + "schemaVersion": { + "title": "Schema Version", + "$ref": "#/$defs/core/properties/schemaVersion" + }, + "entityType": { + "type": "string", + "title": "Entity Type", + "const": "Effect" + }, + "identifier": {"$ref": "#/$defs/Utility/properties/identifier"}, + "name": { + "type": [ + "string", + "null" + ], + "title": "Narrative Effect Name", + "description": "A human readable name for the effect" + }, + "description": { + "type": [ + "string", + "null" + ], + "title": "Narrative Object Description", + "description": "A brief description of the narrative effect" + }, + "effectType": { + "type": "string", + "title": "Object type", + "description": "A categorization of the type of effect.", + "enum": [ + "effect", + "specialEffect", + "visualEffect" + ] + }, + "customData": { + "title": "Custom Data", + "$ref": "#/$defs/core/properties/customData" + }, + "Context": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Context"} + ] + } + }, + "entityInfo": { + "title": "Entity Information", + "$ref": "#/$defs/core/properties/entityInfo" + } + }, + "additionalProperties": false, + "required": [ + "entityType", + "identifier", + "schemaVersion" + ], + "description": "An on screen visual effect considered essential to the narrative." + }, + "NarrativeAudio": { + "type": "object", + "title": "Narrative Audio", + "properties": { + "schemaVersion": { + "title": "Schema Version", + "$ref": "#/$defs/core/properties/schemaVersion" + }, + "entityType": { + "type": "string", + "title": "Entity Type", + "const": "NarrativeAudio" + }, + "identifier": {"$ref": "#/$defs/Utility/properties/identifier"}, + "name": { + "type": [ + "string", + "null" + ], + "title": "Narrative Object Name", + "description": "A human readable name for the audio clip" + }, + "description": { + "type": [ + "string", + "null" + ], + "title": "Narrative Audio Description", + "description": "A brief description of the narrative audio" + }, + "narrativeType": { + "type": "string", + "title": "Object type", + "description": "A categorization of the type of audio.", + "enum": [ + "audio", + "soundEffect", + "music" + ] + }, + "Depiction": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Depiction"} + ] + } + }, + "customData": { + "title": "Custom Data", + "$ref": "#/$defs/core/properties/customData" + }, + "Context": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Context"} + ] + } + }, + "entityInfo": { + "title": "Entity Information", + "$ref": "#/$defs/core/properties/entityInfo" + } + }, + "additionalProperties": false, + "required": [ + "entityType", + "identifier", + "schemaVersion" + ], + "description": "A named piece of audio significant to the narrative." + }, + "NarrativeLocation": { + "type": "object", + "title": "Narrative Location", + "properties": { + "schemaVersion": {"$ref": "#/$defs/core/properties/schemaVersion"}, + "entityType": { + "type": "string", + "title": "Entity Type", + "const": "NarrativeLocation" + }, + "identifier": {"$ref": "#/$defs/Utility/properties/identifier"}, + "name": { + "type": [ + "string", + "null" + ], + "title": "Narrative Location Name", + "description": "A human readable name for the location" + }, + "description": { + "type": [ + "string", + "null" + ], + "title": "Narrative Location Description", + "description": "A brief description of the narrative location" + }, + "Location": { + "oneOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/Utility/properties/Location"} + ] + }, + "Context": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Context"} + ] + } + }, + "Depiction": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Depiction"} + ] + } + }, + "customData": {"$ref": "#/$defs/core/properties/customData"}, + "entityInfo": { + "title": "Entity Information", + "$ref": "#/$defs/core/properties/entityInfo" + } + }, + "additionalProperties": false, + "required": [ + "entityType", + "identifier", + "schemaVersion" + ], + "description": "A location specified or implied by the narrative." + }, + "NarrativeObject": { + "type": "object", + "title": "Narrative Object", + "properties": { + "schemaVersion": { + "title": "Schema Version", + "$ref": "#/$defs/core/properties/schemaVersion" + }, + "entityType": { + "type": "string", + "title": "Entity Type", + "const": "NarrativeObject" + }, + "identifier": {"$ref": "#/$defs/Utility/properties/identifier"}, + "name": { + "type": [ + "string", + "null" + ], + "title": "Narrative Object Name", + "description": "A human readable name for the object" + }, + "description": { + "type": [ + "string", + "null" + ], + "title": "Narrative Object Description", + "description": "A brief description of the narrative object" + }, + "narrativeType": { + "type": "string", + "title": "Object type", + "description": "A departmental categorization for the object.", + "enum": [ + "narrativeObject", + "narrativeProp", + "narrativeGreenery", + "narrativeVehicle", + "narrativeSetDressing" + ] + }, + "customData": { + "title": "Custom Data", + "$ref": "#/$defs/core/properties/customData" + }, + "size": { + "type": [ + "string", + "null" + ], + "title": "Size" + }, + "quantity": { + "type": [ + "string", + "number" + ], + "title": "Quantity" + }, + "Context": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Context"} + ] + } + }, + "Depiction": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Depiction"} + ] + } + }, + "entityInfo": { + "title": "Entity Information", + "$ref": "#/$defs/core/properties/entityInfo" + } + }, + "additionalProperties": false, + "required": [ + "entityType", + "identifier", + "schemaVersion" + ], + "description": "A named object related to or interacting with characters that is implied or understood to be necessary for the narrative. Includes items like props, wardrobe, set dressing and vehicles." + }, + "NarrativeScene": { + "type": "object", + "title": "Narrative Scene", + "properties": { + "schemaVersion": {"$ref": "#/$defs/core/properties/schemaVersion"}, + "entityType": { + "type": "string", + "title": "Entity Type", + "const": "NarrativeScene" + }, + "identifier": {"$ref": "#/$defs/Utility/properties/identifier"}, + "name": { + "type": "string", + "title": "Scene Name", + "description": "A human readable name for the scene" + }, + "sceneName": { + "type": "object", + "title": "Narrative Scene Name", + "description": "A human readable name for the scene", + "properties": { + "fullName": { + "type": [ + "string", + "null" + ], + "title": "Scene full name", + "description": "A full descriptive name for the scene" + }, + "altName": { + "type": [ + "string", + "null" + ], + "title": "Scene alternate name", + "description": "An alternate, often shorter, name used in applications to identify the scenes" + } + }, + "additionalProperties": true + }, + "description": { + "type": [ + "string", + "null" + ], + "title": "Narrative Scene Description", + "description": "A brief description of the narrative scene" + }, + "sceneNumber": { + "type": [ + "string", + "null" + ], + "title": "Scene Number", + "description": "A number used in the script to refer to the scene" + }, + "slugline": { + "type": "array", + "title": "Slugline", + "items": { + "type": "object", + "title": "Slugline", + "description": "An arbitrary note or comment pertaining to the entity", + "properties": { + "title": { + "type": [ + "string", + "null" + ], + "title": "Title", + "description": "A title for the note or annotation" + }, + "text": { + "type": [ + "string", + "null" + ], + "title": "Text", + "description": "The text of the note or annotation" + } + }, + "additionalProperties": false + } + }, + "customData": {"$ref": "#/$defs/core/properties/customData"}, + "Context": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Context"} + ] + } + }, + "entityInfo": { + "title": "Entity Information", + "$ref": "#/$defs/core/properties/entityInfo" + } + }, + "additionalProperties": false, + "required": [ + "entityType", + "identifier", + "schemaVersion" + ], + "description": "Taken from the narrative itself and traditionally defined by creative intent and typically a unity of time, place, action, or theme." + }, + "NarrativeStyling": { + "type": "object", + "title": "Narrative Styling", + "properties": { + "schemaVersion": {"$ref": "#/$defs/core/properties/schemaVersion"}, + "entityType": { + "type": "string", + "title": "Entity Type", + "const": "NarrativeStyling" + }, + "identifier": {"$ref": "#/$defs/Utility/properties/identifier"}, + "name": { + "type": [ + "string", + "null" + ], + "title": "Narrative Styling Name", + "description": "A human readable name for the styling" + }, + "description": { + "type": [ + "string", + "null" + ], + "title": "Narrative Styling Description", + "description": "A brief description of the narrative styling" + }, + "narrativeType": { + "type": "string", + "title": "Object type", + "description": "A categorization of the type styling.", + "enum": [ + "narrativeStyling", + "narrativeHair", + "narrativeMakeup", + "narrativeProsthetics" + ] + }, + "customData": {"$ref": "#/$defs/core/properties/customData"}, + "Context": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Context"} + ] + } + }, + "Depiction": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Depiction"} + ] + } + }, + "entityInfo": { + "title": "Entity Information", + "$ref": "#/$defs/core/properties/entityInfo" + } + }, + "additionalProperties": false, + "required": [ + "entityType", + "identifier", + "schemaVersion" + ], + "description": "Styling required to prepare an actor for their role" + }, + "NarrativeWardrobe": { + "type": "object", + "title": "Narrative Wardrobe", + "properties": { + "schemaVersion": {"$ref": "#/$defs/core/properties/schemaVersion"}, + "entityType": { + "type": "string", + "title": "Entity Type", + "const": "NarrativeWardrobe" + }, + "identifier": {"$ref": "#/$defs/Utility/properties/identifier"}, + "name": { + "type": [ + "string", + "null" + ], + "title": "Narrative Styling Name", + "description": "A human readable name for the styling" + }, + "description": { + "type": [ + "string", + "null" + ], + "title": "Narrative Wardrobe Description", + "description": "A brief description of the narrative wardrobe" + }, + "narrativeType": { + "type": "string", + "title": "Object type", + "description": "A categorization of the type wardrobe", + "enum": ["narrativeWardrobe"] + }, + "customData": {"$ref": "#/$defs/core/properties/customData"}, + "Context": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Context"} + ] + } + }, + "Depiction": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Depiction"} + ] + } + }, + "entityInfo": { + "title": "Entity Information", + "$ref": "#/$defs/core/properties/entityInfo" + } + }, + "additionalProperties": false, + "required": [ + "entityType", + "identifier", + "schemaVersion" + ], + "description": "The clothing for a Character in the narrative." + }, + "ProductionLocation": { + "type": "object", + "title": "Production Location", + "properties": { + "schemaVersion": { + "title": "Schema Version", + "$ref": "#/$defs/core/properties/schemaVersion" + }, + "entityType": { + "type": "string", + "title": "Entity Type", + "const": "ProductionLocation" + }, + "identifier": {"$ref": "#/$defs/Utility/properties/identifier"}, + "name": { + "type": [ + "string", + "null" + ], + "title": "Production Location Name", + "description": "A human readable name for the location" + }, + "description": { + "type": [ + "string", + "null" + ], + "title": "Production Location Description", + "description": "A brief description of the production location" + }, + "locationType": { + "type": "string", + "description": "Describes whether this is production location or more specifically a shooting location", + "enum": [ + "production", + "shooting" + ], + "default": "production" + }, + "Location": { + "oneOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/Utility/properties/Location"} + ] + }, + "customData": { + "title": "Custom Data", + "$ref": "#/$defs/core/properties/customData" + }, + "Context": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Context"} + ] + } + }, + "entityInfo": { + "title": "Entity Information", + "$ref": "#/$defs/core/properties/entityInfo" + } + }, + "additionalProperties": false, + "required": [ + "entityType", + "identifier", + "schemaVersion" + ], + "description": "A real place that is used to depict the Narrative Location or used for creating the production." + }, + "ProductionScene": { + "type": "object", + "title": "Production Scene", + "properties": { + "schemaVersion": { + "title": "Schema Version", + "$ref": "#/$defs/core/properties/schemaVersion" + }, + "entityType": { + "type": "string", + "title": "Entity Type", + "const": "ProductionScene" + }, + "identifier": {"$ref": "#/$defs/Utility/properties/identifier"}, + "name": { + "type": [ + "string", + "null" + ], + "title": "Asset name", + "description": "A human readable name for the production scene" + }, + "description": { + "type": [ + "string", + "null" + ], + "title": "Asset description", + "description": "A human readable description of the production scene" + }, + "sceneName": { + "title": "Scene Name", + "$ref": "#/$defs/Utility/properties/basicName" + }, + "sceneHeader": { + "type": [ + "string", + "null" + ], + "title": "Scene Header", + "description": "Used when referring to the Production Scene. It is generally synonymous with Slugline and is used to divide a Script into scenes." + }, + "sceneDescriptor": { + "type": [ + "string", + "null" + ], + "title": "Scene Descriptor", + "description": "An alphanumeric reference to a Production Scene" + }, + "sceneNumber": { + "type": [ + "null", + "string" + ], + "title": "Scene Number", + "description": "A number tied to a Slugline when a Script is locked" + }, + "customData": {"$ref": "#/$defs/core/properties/customData"}, + "Context": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Context"} + ] + } + }, + "entityInfo": { + "title": "Entity Information", + "$ref": "#/$defs/core/properties/entityInfo" + } + }, + "additionalProperties": false, + "required": [ + "entityType", + "identifier", + "schemaVersion" + ], + "description": "Defined either by explicit divisions in the structure of the Script, e.g., by a Slugline, or by additional capture for use in the Creative Work that is not tied to any particular Scene in the Script." + }, + "Sequence": { + "type": "object", + "title": "Sequence", + "properties": { + "schemaVersion": { + "title": "Schema Version", + "$ref": "#/$defs/core/properties/schemaVersion" + }, + "entityType": { + "type": "string", + "title": "Entity Type", + "const": "Sequence" + }, + "identifier": {"$ref": "#/$defs/Utility/properties/identifier"}, + "name": { + "type": [ + "string", + "null" + ], + "title": "Sequence Name", + "description": "A human readable name for the editorial sequence" + }, + "description": { + "type": [ + "string", + "null" + ], + "description": "A brief description of the sequence", + "title": "Sequence description" + }, + "provenance": { + "$ref": "#/$defs/Utility/properties/provenance", + "title": "Provenance" + }, + "version": { + "type": "object", + "title": "Sequence Version Information", + "description": "A particular form, variant, or representation of an Asset that differs in some way from its source Asset.", + "additionalProperties": false, + "properties": { + "versionNumber": {"$ref": "#/$defs/Utility/properties/versionNumber"}, + "name": { + "type": "string", + "title": "A name for this specific version of the Asset" + }, + "description": { + "type": [ + "string", + "null" + ], + "title": "Asset description", + "description": "A human readable description of the version" + }, + "annotation": { + "type": "array", + "items": {"$ref": "#/$defs/Utility/properties/note"}, + "description": "A collection of notes specific to this version" + }, + "VariantOf": { + "oneOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Sequence"} + ] + }, + "RevisionOf": { + "oneOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Sequence"} + ] + }, + "Variant": { + "type": "array", + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Sequence"} + ] + } + }, + "Alternative": { + "type": "array", + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Sequence"} + ] + } + }, + "Revision": { + "type": "array", + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Sequence"} + ] + } + }, + "customData": {"$ref": "#/$defs/core/properties/customData"} + } + }, + "sequenceType": { + "type": "string", + "title": "Sequence Type", + "enum": [ + "vfx", + "editorial", + "image", + "animation", + "color" + ] + }, + "SCD": { + "title": "Sequence Chronology Descriptor", + "oneOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/Asset/properties/Asset"} + ] + }, + "customData": {"$ref": "#/$defs/core/properties/customData"}, + "Context": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Context"} + ] + } + }, + "entityInfo": { + "title": "Entity Information", + "$ref": "#/$defs/core/properties/entityInfo" + } + }, + "additionalProperties": false, + "required": [ + "entityType", + "identifier", + "schemaVersion" + ], + "description": "A sequence of shots linked to creative intent." + }, + "Slate": { + "type": "object", + "title": "Slate", + "properties": { + "schemaVersion": { + "title": "Schema Version", + "$ref": "#/$defs/core/properties/schemaVersion" + }, + "entityType": { + "type": "string", + "title": "Entity Type", + "const": "Slate" + }, + "identifier": {"$ref": "#/$defs/Utility/properties/identifier"}, + "slateUID": { + "type": "string", + "title": "Slate UID", + "description": "Slate Unique Identifier" + }, + "cameraLabel": { + "type": [ + "string", + "null" + ], + "title": "Camera Label", + "description": "Label for the Camera responsible for the Capture, usually related to the role and responsibility of the group operating it and usually a single upper-case letter starting with A." + }, + "cameraUnit": { + "type": [ + "string", + "null" + ], + "title": "Camera Unit", + "description": "A group of Participants responsible for shooting some element of a Scene, e.g., a Main Unit or Second Unit." + }, + "cameraRoll": { + "type": [ + "string", + "null" + ], + "title": "Camera Roll", + "description": "Identifier for a group of events captured together on the same camera on the same media." + }, + "soundRoll": { + "type": [ + "string", + "null" + ], + "title": "Sound Roll", + "description": "Identifier for a group of audio events captured together on the same recording device and same media." + }, + "shootDate": { + "title": "Shoot Date", + "$ref": "#/$defs/Utility/properties/time/properties/date", + "description": "The date of capture or creation" + }, + "shootDay": { + "type": [ + "number", + "string", + "null" + ], + "title": "Shoot Day", + "description": "The number of the day on the shooting schedule." + }, + "recordingFPS": { + "type": [ + "number", + "null" + ], + "title": "Recording FPS", + "description": "Frames per second recorded by the camera." + }, + "CreativeWork": { + "oneOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/MediaCreationContext/properties/CreativeWork"} + ] + }, + "Director": { + "type": [ + "array", + "null" + ], + "title": "Director", + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/Participant/properties/Participant"} + ] + } + }, + "customData": {"$ref": "#/$defs/core/properties/customData"}, + "Context": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Context"} + ] + } + }, + "entityInfo": { + "title": "Entity Information", + "$ref": "#/$defs/core/properties/entityInfo" + } + }, + "additionalProperties": false, + "required": [ + "entityType", + "identifier", + "schemaVersion" + ], + "description": "Used to capture key identifying information about what is being recorded on any given setup and take." + }, + "SpecialAction": { + "type": "object", + "title": "Special Action", + "properties": { + "schemaVersion": {"$ref": "#/$defs/core/properties/schemaVersion"}, + "entityType": { + "type": "string", + "title": "Entity Type", + "const": "NarrativeAction" + }, + "identifier": {"$ref": "#/$defs/Utility/properties/identifier"}, + "name": { + "type": [ + "string", + "null" + ], + "title": "Narrative Action Name", + "description": "A human readable name for the action" + }, + "description": { + "type": [ + "string", + "null" + ], + "title": "Narrative Object Description", + "description": "A brief description of the narrative action" + }, + "actionType": { + "type": "string", + "title": "Object type", + "description": "A categorization of the type action.", + "enum": [ + "action", + "stunt", + "choreography", + "fight", + "motionCapture", + "marine", + "aerial" + ] + }, + "customData": { + "title": "Custom Data", + "$ref": "#/$defs/core/properties/customData" + }, + "Context": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Context"} + ] + } + }, + "entityInfo": { + "title": "Entity Information", + "$ref": "#/$defs/core/properties/entityInfo" + } + }, + "additionalProperties": false, + "required": [ + "entityType", + "identifier", + "schemaVersion" + ], + "description": "An action or set of actions that are performed and require additional choreography or supervision." + } + }, + "additionalProperties": false, + "title": "Media Creation Context Definitions" + }, + "Participant": { + "type": "object", + "title": "Participant Definitions", + "properties": { + "Participant": { + "type": "object", + "title": "Participant", + "properties": { + "schemaVersion": { + "title": "Schema Version", + "$ref": "#/$defs/core/properties/schemaVersion" + }, + "entityType": { + "type": "string", + "title": "Entity Type", + "const": "Participant" + }, + "identifier": {"$ref": "#/$defs/Utility/properties/identifier"}, + "name": { + "type": [ + "string", + "null" + ], + "title": "Participant name", + "description": "A human readable name for the participant, primarily for use as a label" + }, + "description": { + "type": [ + "string", + "null" + ], + "title": "Description", + "description": "A brief description of the participant" + }, + "ParticipantSC": { + "type": "object", + "oneOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/Participant/properties/Person"}, + {"$ref": "#/$defs/Participant/properties/Department"}, + {"$ref": "#/$defs/Participant/properties/Organization"}, + {"$ref": "#/$defs/Participant/properties/Service"} + ], + "title": "Participant Structural Characteristics", + "description": "Describes the form of a Participant along with the attributes specific to that Participant’s form." + }, + "participantFC": { + "type": "object", + "title": "Participant Functional Characteristics", + "properties": { + "functionalType": { + "type": [ + "string", + "null" + ], + "title": "Functional Type" + }, + "jobTitle": { + "type": [ + "string", + "null" + ], + "title": "Job Title", + "description": "A formal name for the position a Person holds in relation to the production, usually associated with a specific set of responsibilities." + }, + "Role": { + "type": "array", + "description": "", + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/Participant/properties/Role"} + ] + } + } + }, + "additionalProperties": true, + "description": "The use or purpose of a Participant within the production process" + }, + "contact": { + "title": "Participant Contact", + "$ref": "#/$defs/Utility/properties/contact", + "description": "Contact information for the Participant" + }, + "Participant": { + "type": "array", + "title": "Participant", + "description": "Any Participants that are members of this Participant group", + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/Participant/properties/Participant"} + ] + } + }, + "customData": {"$ref": "#/$defs/core/properties/customData"}, + "Context": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Context"} + ] + } + }, + "Depiction": { + "type": [ + "array", + "null" + ], + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Depiction"} + ] + } + }, + "entityInfo": { + "title": "Entity Information", + "$ref": "#/$defs/core/properties/entityInfo" + } + }, + "additionalProperties": false, + "required": [ + "entityType", + "identifier", + "schemaVersion" + ], + "description": "The entities (people, organizations, and services) that are responsible for the production of the Creative Work." + }, + "Person": { + "type": "object", + "properties": { + "schemaVersion": { + "title": "Schema Version", + "$ref": "#/$defs/core/properties/schemaVersion" + }, + "entityType": { + "type": "string", + "title": "Entity Type", + "const": "Person" + }, + "identifier": { + "type": "array", + "title": "Identifier", + "description": "An identifier uniquely identifies an entity within a particular scope.", + "items": { + "type": "object", + "properties": { + "identifierScope": { + "type": "string", + "title": "Identifier Scope", + "description": "The universe within which an identifier is valid and unique." + }, + "identifierValue": { + "type": "string", + "title": "Identifier Value", + "description": "A string of characters that uniquely identifies an object within a particular scope." + } + }, + "additionalProperties": false, + "required": [ + "identifierScope", + "identifierValue" + ] + } + }, + "structuralType": { + "type": "string", + "const": "person" + }, + "name": { + "type": [ + "string", + "null" + ], + "title": "Person name", + "description": "A human readable name for the person, convenient for use in UI's etc." + }, + "description": { + "type": [ + "string", + "null" + ], + "title": "Description", + "description": "A brief description of the person" + }, + "jobTitle": { + "type": [ + "string", + "null" + ], + "title": "Job Title", + "description": "A persons job title (as distinct from a specific role)" + }, + "Location": { + "oneOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/Utility/properties/Location"} + ] + }, + "gender": {"$ref": "#/$defs/Utility/properties/gender"}, + "contact": { + "$ref": "#/$defs/Utility/properties/contact", + "title": "Person Contact", + "description": "Contact information for the Person" + }, + "personName": { + "$ref": "#/$defs/Utility/properties/completeName", + "title": "Person Name", + "description": "The canonical name or set of names and titles for the Person" + }, + "customData": {"$ref": "#/$defs/core/properties/customData"}, + "entityInfo": { + "title": "Entity Information", + "$ref": "#/$defs/core/properties/entityInfo" + } + }, + "additionalProperties": false, + "required": [ + "entityType", + "identifier", + "schemaVersion" + ], + "title": "Person", + "description": "People are the individuals that are associated with the production" + }, + "Department": { + "type": "object", + "properties": { + "schemaVersion": { + "title": "Schema Version", + "$ref": "#/$defs/core/properties/schemaVersion" + }, + "entityType": { + "type": "string", + "title": "Entity Type", + "const": "Department" + }, + "identifier": {"$ref": "#/$defs/Utility/properties/identifier"}, + "structuralType": { + "type": "string", + "const": "department" + }, + "name": { + "type": [ + "string", + "null" + ], + "title": "Department name", + "description": "A human readable name for the department, primarily for use as a label" + }, + "description": { + "type": [ + "string", + "null" + ], + "title": "Description", + "description": "A brief description of the department" + }, + "departmentName": {"$ref": "#/$defs/Utility/properties/basicName"}, + "Location": { + "oneOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/Utility/properties/Location"} + ] + }, + "contact": {"$ref": "#/$defs/Utility/properties/contact"}, + "customData": {"$ref": "#/$defs/core/properties/customData"}, + "entityInfo": { + "title": "Entity Information", + "$ref": "#/$defs/core/properties/entityInfo" + } + }, + "additionalProperties": false, + "required": [ + "entityType", + "identifier", + "schemaVersion" + ], + "title": "Department", + "description": "Part of a larger Organization with a particular set of responsibilities on the production." + }, + "Organization": { + "type": "object", + "properties": { + "schemaVersion": { + "title": "Schema Version", + "$ref": "#/$defs/core/properties/schemaVersion" + }, + "entityType": { + "type": "string", + "title": "Entity Type", + "const": "Organization" + }, + "identifier": {"$ref": "#/$defs/Utility/properties/identifier"}, + "structuralType": { + "type": "string", + "const": "organization" + }, + "name": { + "type": [ + "string", + "null" + ], + "title": "Organization name", + "description": "A human readable name for the organization, primarily for use as a label" + }, + "description": { + "type": [ + "string", + "null" + ], + "title": "Description", + "description": "A brief description of the organization" + }, + "organizationName": {"$ref": "#/$defs/Utility/properties/basicName"}, + "contact": {"$ref": "#/$defs/Utility/properties/contact"}, + "Location": { + "oneOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/Utility/properties/Location"} + ] + }, + "customData": {"$ref": "#/$defs/core/properties/customData"}, + "entityInfo": { + "title": "Entity Information", + "$ref": "#/$defs/core/properties/entityInfo" + } + }, + "additionalProperties": false, + "required": [ + "entityType", + "identifier", + "schemaVersion" + ], + "title": "Organization", + "description": "A legal entity or groups of people associated with the production.. with a particular purpose relative to the production." + }, + "Service": { + "type": "object", + "properties": { + "schemaVersion": { + "title": "Schema Version", + "$ref": "#/$defs/core/properties/schemaVersion" + }, + "entityType": { + "type": "string", + "title": "Entity Type", + "const": "Service" + }, + "identifier": {"$ref": "#/$defs/Utility/properties/identifier"}, + "structuralType": { + "type": "string", + "const": "service" + }, + "name": { + "type": [ + "string", + "null" + ], + "title": "Service name", + "description": "A human readable name for the service, primarily for use as a label" + }, + "description": { + "type": [ + "string", + "null" + ], + "title": "Description", + "description": "A brief description of the service" + }, + "serviceName": {"$ref": "#/$defs/Utility/properties/basicName"}, + "contact": {"$ref": "#/$defs/Utility/properties/contact"}, + "customData": {"$ref": "#/$defs/core/properties/customData"}, + "entityInfo": { + "title": "Entity Information", + "$ref": "#/$defs/core/properties/entityInfo" + } + }, + "additionalProperties": false, + "required": [ + "entityType", + "identifier", + "schemaVersion" + ], + "title": "Service", + "description": "A computer driven agent that can perform tasks given the proper context and structured data." + }, + "Role": { + "type": "object", + "properties": { + "schemaVersion": { + "title": "Schema Version", + "$ref": "#/$defs/core/properties/schemaVersion" + }, + "entityType": { + "type": "string", + "title": "Entity Type", + "const": "Role" + }, + "identifier": {"$ref": "#/$defs/Utility/properties/identifier"}, + "name": { + "type": [ + "string", + "null" + ], + "title": "Role Name", + "examples": [ + "Director", + "Producer", + "Composer", + "Art Department" + ] + }, + "description": { + "type": [ + "string", + "null" + ], + "title": "Role Description" + }, + "roleType": { + "type": "string", + "title": "Role Type", + "description": "The specific role, typically used in authorization systems" + }, + "customData": {"$ref": "#/$defs/core/properties/customData"}, + "entityInfo": { + "title": "Entity Information", + "$ref": "#/$defs/core/properties/entityInfo" + } + }, + "additionalProperties": false, + "required": [ + "entityType", + "identifier", + "schemaVersion" + ], + "title": "Role", + "description": "A set of properties that define the role of a participant within the production" + } + }, + "additionalProperties": false + }, + "Task": { + "type": "object", + "properties": { + "Task": { + "type": "object", + "properties": { + "schemaVersion": { + "title": "Schema Version", + "$ref": "#/$defs/core/properties/schemaVersion" + }, + "entityType": { + "type": "string", + "title": "Entity Type", + "const": "Task" + }, + "identifier": { + "title": "Identifier", + "$ref": "#/$defs/Utility/properties/identifier" + }, + "name": { + "type": [ + "string", + "null" + ], + "title": "Asset name", + "description": "A human readable name for the asset" + }, + "description": { + "type": [ + "string", + "null" + ], + "title": "Asset description", + "description": "A human readable description of the asset" + }, + "TaskSC": { + "title": "Structural Characteristics", + "$ref": "#/$defs/Task/properties/TaskSC" + }, + "taskFC": { + "title": "Functional Characteristics", + "$ref": "#/$defs/Task/properties/taskFC" + }, + "Context": { + "title": "Asset Context", + "$ref": "#/$defs/MediaCreationContext/properties/Context" + }, + "customData": {"$ref": "#/$defs/core/properties/customData"}, + "entityInfo": { + "title": "Entity Information", + "$ref": "#/$defs/core/properties/entityInfo" + } + }, + "title": "Task", + "description": "A piece of work to be done and completed as a step in the production process.", + "additionalProperties": true, + "required": [ + "entityType", + "identifier", + "schemaVersion" + ] + }, + "TaskSC": { + "type": "object", + "title": "Task Structural Characteristics", + "properties": { + "schemaVersion": { + "title": "Schema Version", + "$ref": "#/$defs/core/properties/schemaVersion" + }, + "entityType": { + "type": "string", + "title": "Entity Type", + "const": "TaskSC" + }, + "identifier": {"$ref": "#/$defs/Utility/properties/identifier"}, + "structuralType": { + "type": [ + "string", + "null" + ], + "title": "Structural Type", + "description": "A structured description of the the assets form", + "examples": [ + "assetGroup", + "digital.image", + "analog.movingImage" + ] + }, + "structuralProperties": { + "type": [ + "object", + "null" + ], + "title": "Structural Properties", + "description": "A set of properties that describe the asset in this form", + "properties": { + "customData": {"$ref": "#/$defs/core/properties/customData"} + }, + "additionalProperties": true + }, + "customData": {"$ref": "#/$defs/core/properties/customData"}, + "entityInfo": { + "title": "Entity Information", + "$ref": "#/$defs/core/properties/entityInfo" + } + }, + "additionalProperties": true, + "required": [ + "entityType", + "identifier", + "schemaVersion" + ], + "description": "Describes the form of Task along with the attributes specific to that task’s form" + }, + "taskFC": { + "type": "object", + "title": "Task Functional Characteristics", + "properties": { + "functionalType": { + "type": [ + "string", + "null" + ], + "title": "Functional Type", + "description": "The use or purpose of a Task within the production process." + }, + "functionalProperties": { + "type": [ + "object", + "null" + ], + "title": "Functional Properties", + "description": "A set of properties that describe the tasks functional use", + "properties": { + "customData": {"$ref": "#/$defs/core/properties/customData"} + }, + "additionalProperties": true + }, + "customData": {"$ref": "#/$defs/core/properties/customData"} + }, + "additionalProperties": true, + "description": "Describes the use or purpose of an Asset within the production process" + } + }, + "title": "Task Definitions", + "additionalProperties": false + }, + "Utility": { + "type": "object", + "properties": { + "unitOfMeasurement": { + "type": "object", + "properties": { + "weight": { + "title": "weight", + "description": "Encode a measurement of weight using the imperial or metric system", + "oneOf": [ + {"type": "null"}, + { + "type": "string", + "description": "Encode weight using the metric system of measurement (kilogram, gram)", + "pattern": "^(\\d+kg)?(\\d+g)?$", + "examples": ["3kg7g"] + }, + { + "type": "string", + "description": "Encode weight using the imperial system of measurement (pounds, ounces)", + "pattern": "^(\\d+lb)?(\\d+oz)?$", + "examples": ["12lb14oz"] + } + ] + }, + "dimensions": { + "type": "object", + "title": "dimensions", + "description": "Encode a set of measurements to describe a 2 or 3 dimensional object (metric, imperial or pixels)", + "properties": { + "height": { + "description": "The height or X axis of the object", + "oneOf": [ + {"type": "null"}, + { + "description": "Encode distance using the metric system of measurement (kilometer, meter, centimetre, millimeter", + "pattern": "^-?(\\d+km)?(\\d+m)?(\\d+cm)?(\\d+mm)?$", + "examples": [ + "100m", + "6km2m56cm12mm" + ], + "type": "string" + }, + { + "description": "Encode distance using the imperial system of measurement (miles, feet, inches)", + "pattern": "^-?(\\d+mi)?(\\d+ft)?(\\d+in)?$", + "examples": [ + "2000ft", + "2mi12ft6in" + ], + "type": "string" + }, + { + "description": "Encode a measurement of the number of pixels, typically in a digital image", + "pattern": "^(\\d+px)$", + "examples": ["250px"], + "type": "string" + } + ] + }, + "width": { + "description": "The width or X axis of the object", + "oneOf": [ + {"type": "null"}, + { + "type": "string", + "description": "Encode distance using the metric system of measurement (kilometer, meter, centimetre, millimeter", + "pattern": "^-?(\\d+km)?(\\d+m)?(\\d+cm)?(\\d+mm)?$", + "examples": [ + "100m", + "6km2m56cm12mm" + ] + }, + { + "type": "string", + "description": "Encode distance using the imperial system of measurement (miles, feet, inches)", + "pattern": "^-?(\\d+mi)?(\\d+ft)?(\\d+in)?$", + "examples": [ + "2000ft", + "2mi12ft6in" + ] + }, + { + "type": "string", + "description": "Encode a measurement of the number of pixels, typically in a digital image", + "pattern": "^(\\d+px)$", + "examples": ["250px"] + } + ] + }, + "depth": { + "description": "The depth or Z axis of the object", + "oneOf": [ + {"type": "null"}, + { + "type": "string", + "description": "Encode distance using the metric system of measurement (kilometer, meter, centimetre, millimeter", + "pattern": "^-?(\\d+km)?(\\d+m)?(\\d+cm)?(\\d+mm)?$", + "examples": [ + "100m", + "6km2m56cm12mm" + ] + }, + { + "type": "string", + "description": "Encode distance using the imperial system of measurement (miles, feet, inches)", + "pattern": "^-?(\\d+mi)?(\\d+ft)?(\\d+in)?$", + "examples": [ + "2000ft", + "2mi12ft6in" + ] + }, + { + "type": "string", + "description": "Encode a measurement of the number of pixels, typically in a digital image", + "pattern": "^(\\d+px)$", + "examples": ["250px"] + } + ] + } + } + }, + "linearDistance": { + "title": "Linear Distance", + "description": "Encode a measurement of distance using the imperial or metric system", + "oneOf": [ + {"type": "null"}, + { + "type": "string", + "description": "Encode distance using the metric system of measurement (kilometer, meter, centimetre, millimeter", + "pattern": "^-?(\\d+km)?(\\d+m)?(\\d+cm)?(\\d+mm)?$", + "examples": [ + "100m", + "6km2m56cm12mm" + ] + }, + { + "type": "string", + "description": "Encode distance using the imperial system of measurement (miles, feet, inches)", + "pattern": "^-?(\\d+mi)?(\\d+ft)?(\\d+in)?$", + "examples": [ + "2000ft", + "2mi12ft6in" + ] + } + ] + } + }, + "additionalProperties": false + }, + "identifier": { + "type": "array", + "title": "Identifier", + "description": "An identifier uniquely identifies an entity within a particular scope.", + "items": { + "type": "object", + "properties": { + "identifierScope": { + "type": "string", + "title": "Identifier Scope", + "description": "The universe within which an identifier is valid and unique." + }, + "identifierValue": { + "type": "string", + "title": "Identifier Value", + "description": "A string of characters that uniquely identifies an object within a particular scope." + } + }, + "additionalProperties": false, + "required": [ + "identifierScope", + "identifierValue" + ] + }, + "minItems": 1 + }, + "address": { + "type": [ + "object", + "null" + ], + "title": "Address", + "properties": { + "street": { + "type": [ + "string", + "null" + ], + "title": "Street Address", + "description": "The street address", + "examples": ["1600 Amphitheater Parkway"] + }, + "locality": { + "type": [ + "string", + "null" + ], + "title": "Address locality", + "description": "The locality in which the street address is, and which is in the region.", + "examples": ["Mountain View"] + }, + "region": { + "type": [ + "string", + "null" + ], + "title": "Address region", + "description": "The region in which the locality is, and which is in the country", + "examples": ["California"] + }, + "postalCode": { + "type": [ + "string", + "null" + ], + "title": "Zip or Postal Code", + "description": "A zip or postal code", + "examples": ["94534"] + }, + "country": { + "title": "Country", + "$ref": "#/$defs/Utility/properties/country" + } + }, + "additionalProperties": false, + "description": "A postal address or identifiable location of a place or building" + }, + "country": { + "type": [ + "string", + "null" + ], + "title": "Country", + "description": "The country, as an ISO 3166-1 alpha-2 country code", + "minLength": 2, + "maxLength": 2, + "examples": ["US"] + }, + "basicName": { + "type": [ + "object", + "null" + ], + "title": "Basic Name", + "properties": { + "fullName": { + "type": [ + "string", + "null" + ], + "title": "Full Name", + "description": "The full an complete name of the entity" + }, + "altName": { + "type": [ + "string", + "null" + ], + "title": "Alternate Name", + "description": "An alternate, often shortened name for the entity" + } + }, + "additionalProperties": false, + "description": "A description of things name and an alternative name" + }, + "completeName": { + "type": "object", + "title": "Complete Name", + "properties": { + "firstGivenName": { + "type": [ + "string", + "null" + ], + "title": "First Given Name", + "description": "A person's first name, also referred to as given name" + }, + "secondGivenName": { + "type": [ + "string", + "null" + ], + "title": "Second Given Name", + "description": "A persons second given name, also referred to as middle name" + }, + "familyName": { + "type": [ + "string", + "null" + ], + "title": "Family Name", + "description": "A persons family name, also referred to as surname" + }, + "fullName": { + "type": [ + "string", + "null" + ], + "title": "Full Name", + "description": "A complete name, typically a conjunction of familyName, firstGivenName and possibly other fields." + }, + "birthName": { + "type": [ + "string", + "null" + ], + "title": "Birth Name", + "description": "A persons name at birth, also referred to as maiden name" + }, + "primaryName": { + "type": [ + "string", + "null" + ], + "title": "Primary Name", + "description": "A persons primary name, one they typically use, also often a combination of first, second and family name" + }, + "pseudonym": { + "type": [ + "string", + "null" + ], + "title": "Pseudonym" + }, + "altName": { + "type": [ + "string", + "null" + ], + "title": "Alternate Name" + }, + "translatedName": { + "type": [ + "string", + "null" + ], + "title": "Translated Name" + }, + "nickname": { + "type": [ + "string", + "null" + ], + "title": "Nickname" + }, + "moniker": { + "type": [ + "string", + "null" + ], + "title": "Moniker" + }, + "alias": { + "type": [ + "string", + "null" + ], + "title": "Alias", + "description": "An alias being used by a person often used to disguise someones real identity, sometimes used when booking hotel rooms or restaurants " + }, + "contractualName": { + "type": [ + "string", + "null" + ], + "title": "Contractual Name" + }, + "displayName": { + "type": [ + "string", + "null" + ], + "title": "Display Name" + }, + "sortName": { + "type": [ + "string", + "null" + ], + "title": "Sort Name" + }, + "scriptName": { + "type": [ + "string", + "null" + ], + "title": "Script Name" + }, + "prefix": { + "type": [ + "string", + "null" + ], + "title": "Prefix", + "description": "A prefix that can indicate a persons gender or title", + "examples": [ + "Mrs", + "Mr", + "Dr", + "General" + ] + }, + "suffix": { + "type": [ + "string", + "null" + ], + "title": "Suffix", + "description": "A suffix, often used to indicate a title or classification", + "examples": [ + "MBE", + "MD", + "RN", + "II", + "IV" + ] + } + }, + "additionalProperties": false, + "description": "A detailed description of a person, or others, name and variants of their name." + }, + "gender": { + "type": [ + "object", + "null" + ], + "title": "Gender", + "properties": { + "gender": { + "type": [ + "string", + "null" + ], + "title": "Identifies as gender", + "description": "The gender by which an individual identifies", + "enum": [ + "male", + "female", + "other", + "unknown", + null + ] + }, + "genderPronoun": { + "type": [ + "string", + "null" + ], + "title": "Preferred pronoun", + "description": "An individuals pronoun of choice", + "enum": [ + "he/him", + "she/her", + "ze/hir", + "they/their", + null + ] + } + }, + "additionalProperties": false, + "description": "A person, or others, expressed or prefered gender and pronoun" + }, + "Location": { + "type": "object", + "properties": { + "schemaVersion": { + "title": "Schema Version", + "$ref": "#/$defs/core/properties/schemaVersion" + }, + "entityType": { + "type": "string", + "title": "Entity Type", + "const": "Location" + }, + "identifier": { + "title": "Identifier", + "$ref": "#/$defs/Utility/properties/identifier" + }, + "name": { + "type": [ + "string", + "null" + ], + "title": "Location name", + "description": "A human readable name for the location" + }, + "description": { + "type": [ + "string", + "null" + ], + "title": "Location Description", + "description": "A brief description of the location" + }, + "address": { + "title": "Address", + "$ref": "#/$defs/Utility/properties/address" + }, + "coordinates": { + "title": "Coordinates", + "$ref": "#/$defs/Utility/properties/coordinates" + }, + "Context": { + "type": "array", + "items": { + "anyOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Context"} + ] + } + }, + "entityInfo": { + "title": "Entity Information", + "$ref": "#/$defs/core/properties/entityInfo" + } + }, + "additionalProperties": false, + "required": [ + "entityType", + "identifier", + "schemaVersion" + ], + "title": "Location", + "description": "A particular place or position either in either the real world or the narrative world." + }, + "note": { + "type": [ + "object", + "null" + ], + "title": "Note", + "properties": { + "title": { + "type": "string", + "title": "Title", + "description": "A title for the note or annotation" + }, + "text": { + "type": "string", + "title": "Text", + "description": "The text of the note or annotation" + } + }, + "additionalProperties": false + }, + "time": { + "type": "object", + "title": "Time", + "additionalProperties": false, + "properties": { + "timestamp": { + "type": [ + "number", + "null" + ], + "title": "Timestamp" + }, + "periodInTime": { + "type": "object", + "title": "Period in Time", + "properties": { + "startTime": { + "type": "string", + "title": "Start Time" + }, + "durationTime": { + "type": "string", + "title": "Duration of Time" + }, + "endTime": { + "type": "string", + "title": "End Time" + } + }, + "additionalProperties": false, + "required": ["startTime"] + }, + "descriptiveTime": { + "type": "object", + "title": "Descriptive Time", + "properties": { + "periodInDay": { + "type": "string", + "title": "Period in Day", + "examples": [ + "Morning", + "Noon", + "Midnight", + "Afternoon", + "Night" + ] + }, + "relativeTime": { + "type": "string", + "title": "Relative Time", + "examples": [ + "Later", + "Continuous", + "6 months earlier", + "A long time ago" + ] + }, + "periodInTime": { + "type": "string", + "title": "Period in Time", + "examples": [ + "Ming dynasty", + "World War II", + "Jurassic period", + "20th century" + ] + }, + "eventInTime": { + "type": "string", + "title": "Event in Time", + "description": "Describes a specific event that occurred", + "examples": [ + "Hindenburg disaster", + "World Trade Center attack", + "Queen Elizabeth coronation" + ] + } + }, + "additionalProperties": false + }, + "dateTime": { + "type": [ + "string", + "null" + ], + "title": "Date & Time", + "pattern": "^(?:19|20)\\d{2}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\\d|3[01])T(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:|\\.\\d\\d)(?:Z|-0[1-9]|-1\\d|-2[0-3]|-00:?(?:0[1-9]|[1-5]\\d)|\\+[01]\\d|\\+2[0-3])(?:|:?[0-5]\\d)$", + "description": "Should be formatted to comply with ISO 8601", + "examples": ["2023-08-24T20:51:15Z\n2023-08-24T20:51:15.56Z\n2023-08-24T20:51:15+08:00\n2023-08-24T20:51:15.23-04:00"] + }, + "date": { + "type": [ + "string", + "null" + ], + "title": "Date", + "pattern": "\\d{4}-[01]\\d-[0-3]\\d", + "examples": ["2020-11-21"], + "description": "Should be formatted to comply with ISO 8601" + }, + "durationTime": { + "type": [ + "string", + "null" + ], + "title": "Duration of Time", + "pattern": "^(-?)P(?=.)((\\d+)Y)?((\\d+)M)?((\\d+)D)?(T(?=.)((\\d+)H)?((\\d+)M)?(\\d*(\\.\\d+)?S)?)?$", + "examples": ["P2Y12M3D"], + "description": "Should be formatted to comply with ISO 8601" + }, + "timecode": { + "type": [ + "string", + "null" + ], + "title": "SMPTE Timcode in the format HH:MM:SS:FF. \nAssumes the frame rate is 23.98, 24, 25, 29.97 NDF, or 30", + "pattern": "^(?:(?:[0-1][0-9]|[0-2][0-3]):)(?:[0-5][0-9]:){2}(?:[0-2][0-9])$", + "examples": ["00:03:43:12"], + "description": "SMPTE timecode" + } + } + }, + "coordinates": { + "type": [ + "object", + "null" + ], + "title": "Coordinates", + "description": "A global positioning coordinate in compliance with WGS 84", + "properties": { + "latitude": { + "type": "number", + "title": "latitude", + "minimum": -90, + "maximum": 90 + }, + "longitude": { + "type": "number", + "title": "longitude", + "minimum": -180, + "maximum": 180 + } + }, + "additionalProperties": false + }, + "contact": { + "type": "object", + "title": "Contact", + "properties": { + "email": { + "title": "Email", + "$ref": "#/$defs/Utility/properties/email" + }, + "telephone": { + "title": "Telephone", + "$ref": "#/$defs/Utility/properties/telephone" + } + }, + "additionalProperties": false + }, + "email": { + "type": "object", + "title": "Email", + "properties": { + "business": { + "type": [ + "string", + "null" + ], + "title": "Business" + }, + "personal": { + "type": [ + "string", + "null" + ], + "title": "Personal" + } + }, + "additionalProperties": false + }, + "telephone": { + "type": "object", + "title": "Telephone", + "properties": { + "business": { + "type": [ + "string", + "null" + ], + "title": "Business" + }, + "personal": { + "type": [ + "string", + "null" + ], + "title": "Personal" + } + }, + "additionalProperties": false + }, + "language": { + "type": [ + "string", + "null" + ], + "title": "Language", + "description": "An IETF BCP 47 language code" + }, + "versionNumber": { + "type": [ + "string", + "number", + "null" + ], + "title": "Version Number", + "description": "A designation indicating a place in a sequence of versions" + }, + "provenance": { + "type": "object", + "properties": { + "CreatedBy": { + "oneOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/Participant/properties/Participant"} + ] + }, + "Role": { + "oneOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/Participant/properties/Role"} + ] + }, + "createdOn": {"$ref": "#/$defs/Utility/properties/time/properties/dateTime"}, + "Origin": { + "oneOf": [ + {"$ref": "#/$defs/core/properties/reference"}, + {"$ref": "#/$defs/Asset/properties/Asset"} + ] + }, + "reason": {"type": "string"}, + "note": { + "type": "array", + "items": {"$ref": "#/$defs/Utility/properties/note"} + } + }, + "title": "Provenance", + "description": "A record of when something was changed and by whom.", + "additionalProperties": false + } + }, + "additionalProperties": false, + "title": "Utility Definitions", + "description": "Common data models and data structures used in multiple places and in multiple ways in a larger system." + }, + "core": { + "type": "object", + "title": "Core", + "properties": { + "customData": { + "type": "object", + "title": "Custom Data", + "description": "A user defined set of custom data in the payload of the instance, used where the formal schema lacks required properties", + "additionalProperties": true + }, + "schemaVersion": { + "type": "string", + "title": "Schema Version", + "default": "https://movielabs.com/omc/json/schema/v2.0", + "enum": ["https://movielabs.com/omc/json/schema/v2.0"], + "description": "Describes the version of OMC-JSON schema that was used to create this instance" + }, + "reference": { + "type": [ + "object", + "null" + ], + "properties": { + "identifier": {"$ref": "#/$defs/Utility/properties/identifier"} + }, + "title": "Reference entity", + "additionalProperties": false, + "description": "An identifier that references another entity in the graph" + }, + "rootObject": { + "type": "object", + "properties": { + "Asset": { + "type": "array", + "items": {"$ref": "#/$defs/Asset/properties/Asset"}, + "title": "Asset" + }, + "AssetSC": { + "type": "array", + "items": {"$ref": "#/$defs/Asset/properties/AssetSC"}, + "title": "Asset Structural Characteristics" + }, + "Character": { + "type": "array", + "items": {"$ref": "#/$defs/MediaCreationContext/properties/Character"}, + "title": "Character" + }, + "Context": { + "type": "array", + "items": {"$ref": "#/$defs/MediaCreationContext/properties/Context"}, + "title": "Context" + }, + "CreativeWork": { + "type": "array", + "title": "Creative Work", + "items": {"$ref": "#/$defs/MediaCreationContext/properties/CreativeWork"} + }, + "Depiction": { + "type": "array", + "items": {"$ref": "#/$defs/MediaCreationContext/properties/Depiction"}, + "title": "Context" + }, + "NarrativeAudio": { + "type": "array", + "title": "Narrative Audio", + "items": {"$ref": "#/$defs/MediaCreationContext/properties/NarrativeAudio"} + }, + "NarrativeLocation": { + "type": "array", + "title": "Narrative Location", + "items": {"$ref": "#/$defs/MediaCreationContext/properties/NarrativeLocation"} + }, + "NarrativeObject": { + "type": "array", + "title": "Narrative Object", + "items": {"$ref": "#/$defs/MediaCreationContext/properties/NarrativeObject"} + }, + "NarrativeScene": { + "type": "array", + "title": "Narrative Scene", + "items": {"$ref": "#/$defs/MediaCreationContext/properties/NarrativeScene"} + }, + "NarrativeStyling": { + "type": "array", + "title": "Narrative Styling", + "items": {"$ref": "#/$defs/MediaCreationContext/properties/NarrativeStyling"} + }, + "NarrativeWardrobe": { + "type": "array", + "title": "Narrative Wardrobe", + "items": {"$ref": "#/$defs/MediaCreationContext/properties/NarrativeWardrobe"} + }, + "ProductionLocation": { + "type": "array", + "title": "Production Location", + "items": {"$ref": "#/$defs/MediaCreationContext/properties/ProductionLocation"} + }, + "ProductionScene": { + "type": "array", + "title": "Production Scene", + "items": {"$ref": "#/$defs/MediaCreationContext/properties/ProductionScene"} + }, + "Sequence": { + "type": "array", + "title": "Sequence", + "items": {"$ref": "#/$defs/MediaCreationContext/properties/Sequence"} + }, + "Slate": { + "type": "array", + "title": "Slate", + "items": {"$ref": "#/$defs/MediaCreationContext/properties/Slate"} + }, + "SpecialAction": { + "type": "array", + "title": "Special Action", + "items": {"$ref": "#/$defs/MediaCreationContext/properties/SpecialAction"} + }, + "Effect": { + "type": "array", + "title": "Effect", + "items": {"$ref": "#/$defs/MediaCreationContext/properties/Effect"} + }, + "Participant": { + "type": "array", + "items": {"$ref": "#/$defs/Participant/properties/Participant"}, + "title": "Participant" + }, + "Person": { + "type": "array", + "items": {"$ref": "#/$defs/Participant/properties/Person"}, + "title": "Person" + }, + "Department": { + "type": "array", + "items": {"$ref": "#/$defs/Participant/properties/Department"}, + "title": "Department" + }, + "Organization": { + "type": "array", + "items": {"$ref": "#/$defs/Participant/properties/Organization"}, + "title": "Organization" + }, + "Service": { + "type": "array", + "items": {"$ref": "#/$defs/Participant/properties/Service"}, + "title": "Service" + }, + "Role": { + "type": "array", + "items": {"$ref": "#/$defs/Participant/properties/Role"}, + "title": "Service" + }, + "Location": { + "type": "array", + "title": "Location", + "items": {"$ref": "#/$defs/Utility/properties/Location"} + } + }, + "additionalProperties": false + }, + "rootArray": { + "type": "array", + "items": { + "anyOf": [ + {"$ref": "#/$defs/MediaCreationContext/properties/Character"}, + {"$ref": "#/$defs/Participant/properties/Participant"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Context"}, + {"$ref": "#/$defs/MediaCreationContext/properties/CreativeWork"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Depiction"}, + {"$ref": "#/$defs/MediaCreationContext/properties/NarrativeAudio"}, + {"$ref": "#/$defs/MediaCreationContext/properties/NarrativeLocation"}, + {"$ref": "#/$defs/MediaCreationContext/properties/NarrativeObject"}, + {"$ref": "#/$defs/MediaCreationContext/properties/NarrativeScene"}, + {"$ref": "#/$defs/MediaCreationContext/properties/NarrativeStyling"}, + {"$ref": "#/$defs/MediaCreationContext/properties/NarrativeWardrobe"}, + {"$ref": "#/$defs/MediaCreationContext/properties/ProductionLocation"}, + {"$ref": "#/$defs/MediaCreationContext/properties/ProductionScene"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Slate"}, + {"$ref": "#/$defs/MediaCreationContext/properties/SpecialAction"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Effect"}, + {"$ref": "#/$defs/Utility/properties/Location"}, + {"$ref": "#/$defs/Participant/properties/Role"}, + {"$ref": "#/$defs/Participant/properties/Person"}, + {"$ref": "#/$defs/Participant/properties/Department"}, + {"$ref": "#/$defs/Participant/properties/Organization"}, + {"$ref": "#/$defs/Participant/properties/Service"}, + {"$ref": "#/$defs/Asset/properties/Asset"}, + {"$ref": "#/$defs/Asset/properties/AssetSC"}, + {"$ref": "#/$defs/MediaCreationContext/properties/Sequence"}, + {"$ref": "#/$defs/Infrastructure/properties/Infrastructure"}, + {"$ref": "#/$defs/Infrastructure/properties/InfrastructureSC"}, + {"$ref": "#/$defs/Task/properties/Task"}, + {"$ref": "#/$defs/Task/properties/TaskSC"} + ] + } + }, + "entityInfo": { + "type": [ + "object", + "null" + ], + "title": "Entity Information", + "description": "Reserved for future use to describe specific details about the instance of the entity", + "additionalProperties": false + } + }, + "additionalProperties": false, + "description": "Helper objects used in building the schema" + } + } +} \ No newline at end of file diff --git a/src/core/jsonschema/include/sourcemeta/core/jsonschema_frame.h b/src/core/jsonschema/include/sourcemeta/core/jsonschema_frame.h index a16cd6d97..b64782b1a 100644 --- a/src/core/jsonschema/include/sourcemeta/core/jsonschema_frame.h +++ b/src/core/jsonschema/include/sourcemeta/core/jsonschema_frame.h @@ -47,7 +47,7 @@ namespace sourcemeta::core { /// } /// })JSON"); /// -/// sourcemeta::core::SchemaSchemaFrame frame; +/// sourcemeta::core::SchemaFrame frame; /// frame.analyse(document, /// sourcemeta::core::schema_official_walker, /// sourcemeta::core::schema_official_resolver); @@ -249,7 +249,7 @@ using SchemaUnevaluatedEntries = std::map; /// "unevaluatedProperties": false /// })JSON"); /// -/// sourcemeta::core::SchemaSchemaFrame frame; +/// sourcemeta::core::SchemaFrame frame; /// frame.analyse(document, /// sourcemeta::core::schema_official_walker, /// sourcemeta::core::schema_official_resolver);