Framework-independent contract for visual intent: what exists, what it means, how it appears, how it behaves, how it changes, and which evidence defines the expected result.
Write an object. Only the fields named below are allowed. Unknown fields are rejected so a typo cannot hide inside the document.
Every alternative below applies at the same time. The value has to satisfy all of them.
You must include visualSpec, metadata, and profiles.
37 other fields are optional. Include one only when you have a real value for it.
Exact constraints
- type
object- additional properties
forbidden
$schemaconst "https://visualspec.dev/schema/1.0/schema.json"The only allowed value is "https://visualspec.dev/schema/1.0/schema.json".
Exact constraints
- const
"https://visualspec.dev/schema/1.0/schema.json"
visualSpecrequiredconst "1.0"The only allowed value is "1.0".
Exact constraints
- const
"1.0"
metadatarequiredmetadataThis is not a new shape. It reuses metadata from the common module. Open that definition for the fields you can write.
profilesrequiredarray<"ui" | "image" | "illustration" | "document" | "presentation" | "video" | "motion-graphics" | "3d" | "game">One or more combinable visual profiles.
Write a list. Each item follows the shape described under items.
The list needs at least 1 item.
Each item in the list must be different. Duplicates are invalid.
Exact constraints
- type
array- min items
1- unique items
true
items"ui" | "image" | "illustration" | "document" | "presentation" | "video" | "motion-graphics" | "3d" | "game"Pick one of the 9 listed values. Any other value is invalid. The list is closed on purpose so tools agree on the same words.
Exact constraints
"ui""image""illustration""document""presentation""video""motion-graphics""3d""game"
sourcesarray<source>Write a list. Each item follows the shape described under items.
Exact constraints
- type
array
itemssourceThis is not a new shape. It reuses source from the references module. Open that definition for the fields you can write.
visualReferencesarray<reference>Write a list. Each item follows the shape described under items.
Exact constraints
- type
array
itemsreferenceThis is not a new shape. It reuses reference from the references module. Open that definition for the fields you can write.
visualReferenceSetsarray<referenceSet>Write a list. Each item follows the shape described under items.
Exact constraints
- type
array
itemsreferenceSetThis is not a new shape. It reuses referenceSet from the references module. Open that definition for the fields you can write.
visualLanguagevisualLanguageThis is not a new shape. It reuses visualLanguage from the tokens module. Open that definition for the fields you can write.
tokenstokenRegistryThis is not a new shape. It reuses tokenRegistry from the tokens module. Open that definition for the fields you can write.
worldworldThis is not a new shape. It reuses world from the world module. Open that definition for the fields you can write.
entitiesarray<entity>Write a list. Each item follows the shape described under items.
Exact constraints
- type
array
itemsentityThis is not a new shape. It reuses entity from the world module. Open that definition for the fields you can write.
relationshipsarray<relationship>Write a list. Each item follows the shape described under items.
Exact constraints
- type
array
itemsrelationshipThis is not a new shape. It reuses relationship from the world module. Open that definition for the fields you can write.
scenesarray<scene>Write a list. Each item follows the shape described under items.
Exact constraints
- type
array
itemssceneThis is not a new shape. It reuses scene from the scene module. Open that definition for the fields you can write.
componentsarray<component>Write a list. Each item follows the shape described under items.
Exact constraints
- type
array
itemscomponentThis is not a new shape. It reuses component from the components module. Open that definition for the fields you can write.
semanticsarray<semanticNode>Write a list. Each item follows the shape described under items.
Exact constraints
- type
array
itemssemanticNodeThis is not a new shape. It reuses semanticNode from the semantics module. Open that definition for the fields you can write.
eventsarray<event>Write a list. Each item follows the shape described under items.
Exact constraints
- type
array
itemseventThis is not a new shape. It reuses event from the interaction module. Open that definition for the fields you can write.
actionsarray<action>Write a list. Each item follows the shape described under items.
Exact constraints
- type
array
itemsactionThis is not a new shape. It reuses action from the interaction module. Open that definition for the fields you can write.
statesarray<state>Write a list. Each item follows the shape described under items.
Exact constraints
- type
array
itemsstateThis is not a new shape. It reuses state from the interaction module. Open that definition for the fields you can write.
motionarray<animation>Write a list. Each item follows the shape described under items.
Exact constraints
- type
array
itemsanimationThis is not a new shape. It reuses animation from the motion module. Open that definition for the fields you can write.
timelinesarray<timeline>Write a list. Each item follows the shape described under items.
Exact constraints
- type
array
itemstimelineThis is not a new shape. It reuses timeline from the timeline module. Open that definition for the fields you can write.
assetsarray<asset>Write a list. Each item follows the shape described under items.
Exact constraints
- type
array
itemsassetThis is not a new shape. It reuses asset from the assets module. Open that definition for the fields you can write.
camerasarray<camera>Write a list. Each item follows the shape described under items.
Exact constraints
- type
array
itemscameraThis is not a new shape. It reuses camera from the camera module. Open that definition for the fields you can write.
lightsarray<light>Write a list. Each item follows the shape described under items.
Exact constraints
- type
array
itemslightThis is not a new shape. It reuses light from the lighting module. Open that definition for the fields you can write.
materialsarray<material>Write a list. Each item follows the shape described under items.
Exact constraints
- type
array
itemsmaterialThis is not a new shape. It reuses material from the materials module. Open that definition for the fields you can write.
effectsarray<effect>Write a list. Each item follows the shape described under items.
Exact constraints
- type
array
itemseffectThis is not a new shape. It reuses effect from the effects module. Open that definition for the fields you can write.
compositionsarray<composition>Write a list. Each item follows the shape described under items.
Exact constraints
- type
array
itemscompositionThis is not a new shape. It reuses composition from the media module. Open that definition for the fields you can write.
illustrationsarray<illustration>Write a list. Each item follows the shape described under items.
Exact constraints
- type
array
itemsillustrationThis is not a new shape. It reuses illustration from the media module. Open that definition for the fields you can write.
videosarray<video>Write a list. Each item follows the shape described under items.
Exact constraints
- type
array
itemsvideoThis is not a new shape. It reuses video from the media module. Open that definition for the fields you can write.
presentationsarray<presentation>Write a list. Each item follows the shape described under items.
Exact constraints
- type
array
itemspresentationThis is not a new shape. It reuses presentation from the presentation module. Open that definition for the fields you can write.
documentsarray<document>Write a list. Each item follows the shape described under items.
Exact constraints
- type
array
itemsdocumentThis is not a new shape. It reuses document from the document module. Open that definition for the fields you can write.
threeDthreeDThis is not a new shape. It reuses threeD from the three-d module. Open that definition for the fields you can write.
gamegameThis is not a new shape. It reuses game from the game module. Open that definition for the fields you can write.
accessibilityaccessibilityThis is not a new shape. It reuses accessibility from the accessibility module. Open that definition for the fields you can write.
renderingrenderingThis is not a new shape. It reuses rendering from the rendering module. Open that definition for the fields you can write.
platformOverridesarray<override>Write a list. Each item follows the shape described under items.
Exact constraints
- type
array
itemsoverrideThis is not a new shape. It reuses override from the rendering module. Open that definition for the fields you can write.
validationvalidationThis is not a new shape. It reuses validation from the validation module. Open that definition for the fields you can write.
flowsarray<flow>Write a list. Each item follows the shape described under items.
Exact constraints
- type
array
itemsflowThis is not a new shape. It reuses flow from the interaction module. Open that definition for the fields you can write.
provenancearray<assertion>Write a list. Each item follows the shape described under items.
Exact constraints
- type
array
itemsassertionThis is not a new shape. It reuses assertion from the references module. Open that definition for the fields you can write.
platformsarray<"web" | "apple" | "android" | "fluent" | "custom">Write a list. Each item follows the shape described under items.
Each item in the list must be different. Duplicates are invalid.
Exact constraints
- type
array- unique items
true
items"web" | "apple" | "android" | "fluent" | "custom"Pick one of the 5 listed values. Any other value is invalid. The list is closed on purpose so tools agree on the same words.
Exact constraints
"web""apple""android""fluent""custom"
extensionsextensionsThis is not a new shape. It reuses extensions from the common module. Open that definition for the fields you can write.
allOf 1-ifobjectWrite an object. The fields below are the ones this definition names.
You must include profiles.
profilesrequired-thenobjectWrite an object. The fields below are the ones this definition names.
You must include scenes.
scenesrequired-The list needs at least 1 item.
Exact constraints
- min items
1
allOf 2-ifobjectWrite an object. The fields below are the ones this definition names.
You must include profiles.
profilesrequired-thenobjectWrite an object. The fields below are the ones this definition names.
You must include entities, scenes, and cameras.
entitiesrequired-The list needs at least 1 item.
Exact constraints
- min items
1
scenesrequired-The list needs at least 1 item.
Exact constraints
- min items
1
camerasrequired-The list needs at least 1 item.
Exact constraints
- min items
1
allOf 3-ifobjectWrite an object. The fields below are the ones this definition names.
You must include profiles.
profilesrequired-thenobjectWrite an object. The fields below are the ones this definition names.
You must include illustrations and entities.
illustrationsrequired-The list needs at least 1 item.
Exact constraints
- min items
1
entitiesrequired-The list needs at least 1 item.
Exact constraints
- min items
1
allOf 4-ifobjectWrite an object. The fields below are the ones this definition names.
You must include profiles.
profilesrequired-thenobjectWrite an object. The fields below are the ones this definition names.
You must include documents.
documentsrequired-The list needs at least 1 item.
Exact constraints
- min items
1
allOf 5-ifobjectWrite an object. The fields below are the ones this definition names.
You must include profiles.
profilesrequired-thenobjectWrite an object. The fields below are the ones this definition names.
You must include presentations.
presentationsrequired-The list needs at least 1 item.
Exact constraints
- min items
1
allOf 6-ifobjectWrite an object. The fields below are the ones this definition names.
You must include profiles.
profilesrequired-thenobjectWrite an object. The fields below are the ones this definition names.
You must include videos and timelines.
videosrequired-The list needs at least 1 item.
Exact constraints
- min items
1
timelinesrequired-The list needs at least 1 item.
Exact constraints
- min items
1
allOf 7-ifobjectWrite an object. The fields below are the ones this definition names.
You must include profiles.
profilesrequired-thenobjectWrite an object. The fields below are the ones this definition names.
You must include motion and scenes.
motionrequired-The list needs at least 1 item.
Exact constraints
- min items
1
scenesrequired-The list needs at least 1 item.
Exact constraints
- min items
1
allOf 8-ifobjectWrite an object. The fields below are the ones this definition names.
You must include profiles.
profilesrequired-thenobjectWrite an object. The fields below are the ones this definition names.
You must include threeD, scenes, and entities.
scenesrequired-The list needs at least 1 item.
Exact constraints
- min items
1
entitiesrequired-The list needs at least 1 item.
Exact constraints
- min items
1
allOf 9-ifobjectWrite an object. The fields below are the ones this definition names.
You must include profiles.
profilesrequired-thenobjectYou must include game.