Skip to content

3D scene format

VGAI Reference 0.3

Planned versioned generated-schema truth covering Scene and prefab schemas, parsing, and runtime loading, Authored three-dimensional physics joints, Scene lighting, shadows, and environment, Generated geometry and splines, Scene particle systems, Postprocessing pipeline, Scene cameras and deterministic camera ownership, Nested component values in authored scene JSON.

planned · generated · immutable Reference 0.3

Lifecycle and constraints

Detailed constraints will publish with the generated or reviewed entry.

Runnable Learn material

Generated format inventory

Inventory only — AC-REF-002 is not passed. Valid parser-verified examples, narrative guidance, complete cross-field/runtime constraints, and version history remain deferred. This page must not be treated as a complete format contract.

Source: packages/engine/schemas/vscn.schema.json · 2070 branch-sensitive field records · 678 source-described. This source intentionally supersedes the frozen study boundary.

scene · file · 2070 fields
Field / branchTypeRequiredDefaultConstraintsDescription
# $ object yes none {"additionalProperties":false} Scene file (.vscn.json)
# $.version number yes none none Scene file format version
# $.name string yes none none Scene display name
# $.environment object no none {"additionalProperties":false} Scene-level environment settings
# $.environment.background string no none none Background color as CSS hex string
# $.environment.ambient object no none {"additionalProperties":false} Global ambient light
# $.environment.ambient.color string yes none none Ambient light color
# $.environment.ambient.intensity number yes none none Ambient light intensity
# $.environment.fog object no none {"additionalProperties":false} Distance fog settings
# $.environment.fog.type enum (2) yes none {"enum":["linear","exponential"]} Fog falloff type
# $.environment.fog.color string yes none none Fog color
# $.environment.fog.near number no none none Fog start distance (linear only)
# $.environment.fog.far number no none none Fog end distance (linear only)
# $.environment.fog.density number no none none Fog density (exponential only)
# $.environment.skybox string no none none Path to HDR/EXR skybox environment map
# $.environment.envMapIntensity number no none none Environment map reflection intensity multiplier
# $.environment.toneMapping object no none {"additionalProperties":false} Tone mapping configuration
# $.environment.toneMapping.mode enum (6) no none {"enum":["none","linear","reinhard","cineon","aces","agx"]} Tone mapping operator
# $.environment.toneMapping.exposure number no none none Exposure level
# $.environment.postProcessing object no none {"additionalProperties":false} Post-processing effects (bloom, vignette)
# $.environment.postProcessing.bloom object no none {"additionalProperties":false} Bloom glow effect
# $.environment.postProcessing.bloom.enabled boolean no none none Enable bloom effect
# $.environment.postProcessing.bloom.intensity number no none none Bloom intensity multiplier
# $.environment.postProcessing.bloom.luminanceThreshold number no none none Minimum luminance to trigger bloom
# $.environment.postProcessing.bloom.luminanceSmoothing number no none none Smoothing applied to luminance threshold
# $.environment.postProcessing.vignette object no none {"additionalProperties":false} Screen-edge darkening effect
# $.environment.postProcessing.vignette.enabled boolean no none none Enable vignette effect
# $.environment.postProcessing.vignette.darkness number no none none Vignette darkness intensity
# $.environment.postProcessing.vignette.offset number no none none Vignette offset from center
# $.environment.postProcessing.brightnessContrast object no none {"additionalProperties":false} Brightness and contrast color adjustment
# $.environment.postProcessing.brightnessContrast.enabled boolean no none none Enable brightness/contrast adjustment
# $.environment.postProcessing.brightnessContrast.brightness number no none none Brightness adjustment (-1 to 1)
# $.environment.postProcessing.brightnessContrast.contrast number no none none Contrast adjustment (-1 to 1)
# $.environment.postProcessing.hueSaturation object no none {"additionalProperties":false} Hue rotation and saturation color adjustment
# $.environment.postProcessing.hueSaturation.enabled boolean no none none Enable hue/saturation adjustment
# $.environment.postProcessing.hueSaturation.hue number no none none Hue rotation in radians
# $.environment.postProcessing.hueSaturation.saturation number no none none Saturation adjustment (-1 to 1)
# $.environment.postProcessing.sepia object no none {"additionalProperties":false} Warm sepia tone for vintage photograph look
# $.environment.postProcessing.sepia.enabled boolean no none none Enable sepia tone
# $.environment.postProcessing.sepia.intensity number no none none Sepia effect intensity (0 to 1)
# $.environment.postProcessing.colorDepth object no none {"additionalProperties":false} Reduce color bit depth for posterized/banded look
# $.environment.postProcessing.colorDepth.enabled boolean no none none Enable color depth reduction
# $.environment.postProcessing.colorDepth.bits number no none none Number of color bits per channel (1–16)
# $.environment.postProcessing.chromaticAberration object no none {"additionalProperties":false} Lens chromatic aberration (color fringing at screen edges)
# $.environment.postProcessing.chromaticAberration.enabled boolean no none none Enable chromatic aberration
# $.environment.postProcessing.chromaticAberration.offsetX number no none none Horizontal color fringe offset
# $.environment.postProcessing.chromaticAberration.offsetY number no none none Vertical color fringe offset
# $.environment.postProcessing.chromaticAberration.radialModulation boolean no none none Increase effect toward screen edges
# $.environment.postProcessing.chromaticAberration.modulationOffset number no none none Radial modulation offset from center
# $.environment.postProcessing.lensDistortion object no none {"additionalProperties":false} Barrel/pincushion lens distortion
# $.environment.postProcessing.lensDistortion.enabled boolean no none none Enable lens distortion
# $.environment.postProcessing.lensDistortion.distortionX number no none none Horizontal barrel/pincushion distortion
# $.environment.postProcessing.lensDistortion.distortionY number no none none Vertical barrel/pincushion distortion
# $.environment.postProcessing.lensDistortion.focalLengthX number no none none Horizontal focal length
# $.environment.postProcessing.lensDistortion.focalLengthY number no none none Vertical focal length
# $.environment.postProcessing.lensDistortion.skew number no none none Lens skew angle
# $.environment.postProcessing.depthOfField object no none {"additionalProperties":false} Physically-based depth of field with bokeh blur
# $.environment.postProcessing.depthOfField.enabled boolean no none none Enable depth of field
# $.environment.postProcessing.depthOfField.worldFocusDistance number no none none Focus distance in world units
# $.environment.postProcessing.depthOfField.worldFocusRange number no none none Focus range in world units
# $.environment.postProcessing.depthOfField.bokehScale number no none none Bokeh blur scale
# $.environment.postProcessing.depthOfField.focalLength number no none none Camera focal length in mm
# $.environment.postProcessing.tiltShift object no none {"additionalProperties":false} Tilt-shift miniature-world blur effect
# $.environment.postProcessing.tiltShift.enabled boolean no none none Enable tilt-shift effect
# $.environment.postProcessing.tiltShift.offset number no none none Focus band offset from center
# $.environment.postProcessing.tiltShift.rotation number no none none Focus band rotation in radians
# $.environment.postProcessing.tiltShift.focusArea number no none none Focus band width (0–1)
# $.environment.postProcessing.tiltShift.feather number no none none Blur falloff smoothness
# $.environment.postProcessing.noise object no none {"additionalProperties":false} Random per-pixel noise overlay (film grain)
# $.environment.postProcessing.noise.enabled boolean no none none Enable film grain noise
# $.environment.postProcessing.noise.premultiply boolean no none none Multiply noise with input color instead of adding
# $.environment.postProcessing.scanline object no none {"additionalProperties":false} Horizontal scanline overlay (CRT monitor look)
# $.environment.postProcessing.scanline.enabled boolean no none none Enable scanline overlay
# $.environment.postProcessing.scanline.density number no none none Number of scanlines across screen height
# $.environment.postProcessing.dotScreen object no none {"additionalProperties":false} Halftone dot pattern (newspaper/comic look)
# $.environment.postProcessing.dotScreen.enabled boolean no none none Enable dot screen halftone
# $.environment.postProcessing.dotScreen.angle number no none none Pattern angle in radians
# $.environment.postProcessing.dotScreen.scale number no none none Pattern dot scale
# $.environment.postProcessing.grid object no none {"additionalProperties":false} Visible grid pattern overlay
# $.environment.postProcessing.grid.enabled boolean no none none Enable grid overlay
# $.environment.postProcessing.grid.scale number no none none Grid cell scale
# $.environment.postProcessing.grid.lineWidth number no none none Grid line width
# $.environment.postProcessing.pixelation object no none {"additionalProperties":false} Reduce resolution for pixel-art / mosaic effect
# $.environment.postProcessing.pixelation.enabled boolean no none none Enable pixelation
# $.environment.postProcessing.pixelation.granularity number no none none Pixel size (higher = more pixelated)
# $.environment.postProcessing.glitch object no none {"additionalProperties":false} Random digital glitch artifacts (block displacement, color shifting)
# $.environment.postProcessing.glitch.enabled boolean no none none Enable digital glitch effect
# $.environment.postProcessing.glitch.delayX number no none none Minimum delay between glitches (seconds)
# $.environment.postProcessing.glitch.delayY number no none none Maximum delay between glitches (seconds)
# $.environment.postProcessing.glitch.durationX number no none none Minimum glitch duration (seconds)
# $.environment.postProcessing.glitch.durationY number no none none Maximum glitch duration (seconds)
# $.environment.postProcessing.glitch.strengthX number no none none Minimum glitch strength
# $.environment.postProcessing.glitch.strengthY number no none none Maximum glitch strength
# $.environment.postProcessing.glitch.columns number no none none Number of glitch columns
# $.environment.postProcessing.glitch.ratio number no none none Glitch ratio (0–1)
# $.environment.postProcessing.shockWave object no none {"additionalProperties":false} Expanding spherical distortion wave from a point
# $.environment.postProcessing.shockWave.enabled boolean no none none Enable shock wave distortion
# $.environment.postProcessing.shockWave.speed number no none none Wave propagation speed
# $.environment.postProcessing.shockWave.maxRadius number no none none Maximum wave radius
# $.environment.postProcessing.shockWave.waveSize number no none none Width of the distortion wave
# $.environment.postProcessing.shockWave.amplitude number no none none Distortion strength
# $.environment.postProcessing.shockWave.positionX number no none none Wave origin X in world space
# $.environment.postProcessing.shockWave.positionY number no none none Wave origin Y in world space
# $.environment.postProcessing.shockWave.positionZ number no none none Wave origin Z in world space
# $.environment.postProcessing.smaa object no none {"additionalProperties":false} Subpixel Morphological Anti-Aliasing
# $.environment.postProcessing.smaa.enabled boolean no none none Enable SMAA anti-aliasing
# $.environment.postProcessing.smaa.preset enum (4) no none {"enum":["low","medium","high","ultra"]} Quality preset (higher = better quality, more cost)
# $.environment.postProcessing.ssao object no none {"additionalProperties":false} Screen-space ambient occlusion (darken creases and crevices)
# $.environment.postProcessing.ssao.enabled boolean no none none Enable screen-space ambient occlusion
# $.environment.postProcessing.ssao.radius number no none none Occlusion sampling radius
# $.environment.postProcessing.ssao.intensity number no none none Occlusion intensity multiplier
# $.environment.postProcessing.ssao.bias number no none none Depth bias to reduce self-occlusion artifacts
# $.environment.postProcessing.ssao.samples number no none none Number of occlusion samples per pixel
# $.environment.postProcessing.ssao.rings number no none none Number of spiral sample rings
# $.environment.postProcessing.ssao.fade number no none none Distance at which occlusion fades out
# $.environment.postProcessing.ssao.color string no none none Occlusion tint color as CSS hex
# $.environment.postProcessing.n8ao object no none {"additionalProperties":false} High-quality ambient occlusion (N8AO — alternative to SSAO)
# $.environment.postProcessing.n8ao.enabled boolean no none none Enable N8AO ambient occlusion
# $.environment.postProcessing.n8ao.aoSamples number no none none Number of AO samples (default 16)
# $.environment.postProcessing.n8ao.aoRadius number no none none AO sampling radius in world units
# $.environment.postProcessing.n8ao.intensity number no none none AO intensity multiplier
# $.environment.postProcessing.n8ao.denoiseSamples number no none none Number of denoise samples
# $.environment.postProcessing.n8ao.denoiseRadius number no none none Denoise blur radius
# $.environment.postProcessing.n8ao.distanceFalloff number no none none AO distance falloff
# $.environment.postProcessing.n8ao.screenSpaceRadius boolean no none none Use screen-space radius instead of world-space
# $.environment.postProcessing.n8ao.color string no none none AO tint color as CSS hex
# $.environment.postProcessing.n8ao.halfRes boolean no none none Render AO at half resolution for performance
# $.environment.postProcessing.godRays object no none {"additionalProperties":false} Volumetric light shafts from a light source entity
# $.environment.postProcessing.godRays.enabled boolean no none none Enable god rays
# $.environment.postProcessing.godRays.sourceEntity string no none none Entity ID of the light source mesh
# $.environment.postProcessing.godRays.density number no none none Ray density
# $.environment.postProcessing.godRays.decay number no none none Ray intensity decay along distance
# $.environment.postProcessing.godRays.weight number no none none Ray weight / brightness
# $.environment.postProcessing.godRays.exposure number no none none Overall god ray exposure
# $.environment.postProcessing.godRays.samples number no none none Number of ray-march samples
# $.environment.postProcessing.outline object no none {"additionalProperties":false} Highlight entities matching tags with colored outlines
# $.environment.postProcessing.outline.enabled boolean no none none Enable outline effect
# $.environment.postProcessing.outline.tags array no none none Entity tags to outline
# $.environment.postProcessing.outline.tags[] string yes none none Missing source description
# $.environment.postProcessing.outline.edgeStrength number no none none Outline edge thickness / strength
# $.environment.postProcessing.outline.pulseSpeed number no none none Outline pulse animation speed (0 = no pulse)
# $.environment.postProcessing.outline.visibleEdgeColor string no none none Color of visible edges as CSS hex
# $.environment.postProcessing.outline.hiddenEdgeColor string no none none Color of hidden/occluded edges as CSS hex
# $.environment.postProcessing.outline.xRay boolean no none none Show outline through occluding objects
# $.environment.postProcessing.ssr object no none {"additionalProperties":false} Screen-space reflections for reflective/glossy surfaces
# $.environment.postProcessing.ssr.enabled boolean no none none Enable screen-space reflections
# $.environment.postProcessing.ssr.intensity number no none none Reflection intensity
# $.environment.postProcessing.ssr.exponent number no none none Reflection falloff exponent
# $.environment.postProcessing.ssr.distance number no none none Maximum reflection ray distance
# $.environment.postProcessing.ssr.thickness number no none none Depth thickness for hit testing
# $.environment.postProcessing.ssr.maxRoughness number no none none Maximum roughness for reflections (0–1)
# $.environment.postProcessing.ssgi object no none {"additionalProperties":false} Screen-space global illumination (indirect lighting bounce)
# $.environment.postProcessing.ssgi.enabled boolean no none none Enable screen-space global illumination
# $.environment.postProcessing.ssgi.intensity number no none none Indirect light intensity
# $.environment.postProcessing.ssgi.distance number no none none Maximum GI ray distance
# $.environment.postProcessing.ssgi.thickness number no none none Depth thickness for hit testing
# $.environment.postProcessing.ssgi.maxRoughness number no none none Maximum roughness for GI (0–1)
# $.environment.postProcessing.motionBlur object no none {"additionalProperties":false} Per-object motion blur from camera and object movement
# $.environment.postProcessing.motionBlur.enabled boolean no none none Enable motion blur
# $.environment.postProcessing.motionBlur.intensity number no none none Motion blur intensity
# $.environment.postProcessing.motionBlur.jitter number no none none Sample jitter amount
# $.environment.postProcessing.motionBlur.samples number no none none Number of blur samples
# $.environment.navigation object no none {"additionalProperties":false} Navigation mesh bake settings
# $.environment.navigation.cellSize number no none none Navmesh voxel cell size (smaller = more detail, slower bake)
# $.environment.navigation.cellHeight number no none none Navmesh voxel cell height
# $.environment.navigation.walkableSlopeAngle number no none none Maximum slope angle (degrees) agents can walk on
# $.environment.navigation.walkableHeight number no none none Minimum ceiling height for walkable areas (in voxels)
# $.environment.navigation.walkableClimb number no none none Maximum step height agents can climb (in voxels)
# $.environment.navigation.walkableRadius number no none none Agent radius for navmesh erosion (in voxels)
# $.environment.navigation.maxEdgeLen number no none none Maximum contour edge length in the navmesh
# $.environment.navigation.maxSimplificationError number no none none Maximum deviation for navmesh edge simplification
# $.environment.navigation.minRegionArea number no none none Minimum region area — smaller regions are removed
# $.environment.navigation.mergeRegionArea number no none none Regions smaller than this are merged with neighbors
# $.environment.physics object no none {"additionalProperties":false} Physics world settings
# $.environment.physics.collisionLayers array no none none Named collision layers (up to 16). Index = bit position in collision bitmasks
# $.environment.physics.collisionLayers[] string yes none none Missing source description
# $.environment.rendering object no none {"additionalProperties":false} Scene-level render feature toggles (auto-batching, culling, LOD, shadows, etc.). Omit a field to inherit the engine default. Derived from the render-feature registry.
# $.environment.rendering.autoBatch boolean no none none Automatically batch entities sharing geometry+material into one draw call (InstancedMesh/BatchedMesh) while keeping each Object3D as the handle. The headline perf win; opt out per-entity for custom-shader/skinned meshes.
# $.environment.rendering.frustumCulling boolean no none none Per-instance frustum culling for batched content.
# $.environment.rendering.lod boolean no none none Distance-based geometry swap (LOD) for eligible entities.
# $.environment.rendering.shadows boolean no none none Enable the shadow map. Per-entity cast/receive still applies.
# $.environment.rendering.postProcessing boolean no none none Master switch for the post-processing stack (individual effects nest beneath it).
# $.environment.rendering.resolutionScale number no none none Device-pixel-ratio multiplier (1.0 = native). The cheapest perf dial.
# $.environment.rendering.antialias boolean no none none MSAA via renderer construction. Applies on reload (renderer re-init).
# $.environment.rendering.backend enum (3) no none {"enum":["auto","webgl","webgpu"]} GPU backend: auto picks WebGPU when available, else WebGL2. Applies on reload.
# $.entities array yes none none Top-level entities in the scene
# $.entities[] ref #/$defs/__schema0 yes none none Missing source description
# $.entities[]ref:#/$defs/__schema0 anyOf (2) yes none none Missing source description
# $.entities[]ref:#/$defs/__schema0 anyOf[0] object yes none {"additionalProperties":false} Missing source description
# $.entities[].idref:#/$defs/__schema0 anyOf[0] string no none none Unique entity ID. Auto-generated if omitted
# $.entities[].nameref:#/$defs/__schema0 anyOf[0] string yes none none Human-readable entity name (shown in hierarchy panel)
# $.entities[].visibleref:#/$defs/__schema0 anyOf[0] boolean no none none Whether the entity and its children are rendered
# $.entities[].lockedref:#/$defs/__schema0 anyOf[0] boolean no none none Prevent selection and editing in the scene editor
# $.entities[].tagsref:#/$defs/__schema0 anyOf[0] array no none none Arbitrary string tags for runtime queries
# $.entities[].tags[]ref:#/$defs/__schema0 anyOf[0] string yes none none Missing source description
# $.entities[].prefabref:#/$defs/__schema0 anyOf[0] string no none none Path to .prefab.json file to instantiate
# $.entities[].materialRefref:#/$defs/__schema0 anyOf[0] string no none none Path to shared .mat.json material asset. Mutually exclusive with inline material
# $.entities[].transformref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":false} Local transform relative to parent
# $.entities[].transform.positionref:#/$defs/__schema0 anyOf[0] array no none none World-space position [x, y, z]
# $.entities[].transform.position[0]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.entities[].transform.position[1]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.entities[].transform.position[2]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.entities[].transform.rotationref:#/$defs/__schema0 anyOf[0] array no none none Rotation quaternion [x, y, z, w]
# $.entities[].transform.rotation[0]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.entities[].transform.rotation[1]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.entities[].transform.rotation[2]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.entities[].transform.rotation[3]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.entities[].transform.scaleref:#/$defs/__schema0 anyOf[0] array no none none Scale factor per axis [x, y, z]. Defaults to [1, 1, 1]
# $.entities[].transform.scale[0]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.entities[].transform.scale[1]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.entities[].transform.scale[2]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.entities[].boneAttachmentref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":false} Animated bone/socket attachment. Use transform for the local position, rotation, and scale offset
# $.entities[].boneAttachment.targetref:#/$defs/__schema0 anyOf[0] string yes none none Entity ID whose animated skeleton owns the target bone
# $.entities[].boneAttachment.boneref:#/$defs/__schema0 anyOf[0] string yes none none Exact name of the target bone or socket Object3D
# $.entities[].pivotref:#/$defs/__schema0 anyOf[0] array no none none Local-space pivot point for rotation/scale. [0,0,0] = geometry center
# $.entities[].pivot[0]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.entities[].pivot[1]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.entities[].pivot[2]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.entities[].navigationref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":false} Navigation mesh role for this entity
# $.entities[].navigation.roleref:#/$defs/__schema0 anyOf[0] enum (2) yes none {"enum":["walkable","obstacle"]} Whether this entity is walkable surface or an obstacle
# $.entities[].renderref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":false} Per-entity render overrides (e.g. autoBatch:false to keep a custom-shader entity out of batching). Omit to inherit from the scene/engine default.
# $.entities[].render.autoBatchref:#/$defs/__schema0 anyOf[0] boolean no none none Automatically batch entities sharing geometry+material into one draw call (InstancedMesh/BatchedMesh) while keeping each Object3D as the handle. The headline perf win; opt out per-entity for custom-shader/skinned meshes.
# $.entities[].render.frustumCullingref:#/$defs/__schema0 anyOf[0] boolean no none none Per-instance frustum culling for batched content.
# $.entities[].render.lodref:#/$defs/__schema0 anyOf[0] boolean no none none Distance-based geometry swap (LOD) for eligible entities.
# $.entities[].render.shadowsref:#/$defs/__schema0 anyOf[0] boolean no none none Enable the shadow map. Per-entity cast/receive still applies.
# $.entities[].componentsref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"string"},{"type":"boolean"}]},{"type":"array","items":{"type":"number"}},{"type":"array","items":{"type":"string"}},{"type":"array","items":{"type":"boolean"}}]}},"propertyNames":{"type":"string"}} User-defined ECS component data (validated against component registry)
# $.entities[].components{key}ref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"string"},{"type":"boolean"}]},{"type":"array","items":{"type":"number"}},{"type":"array","items":{"type":"string"}},{"type":"array","items":{"type":"boolean"}}]},"propertyNames":{"type":"string"}} Missing source description
# $.entities[].components{key}{key}ref:#/$defs/__schema0 anyOf[0] anyOf (4) no none none Missing source description
# $.entities[].components{key}{key}ref:#/$defs/__schema0 anyOf[0] anyOf[0] anyOf (3) no none none Missing source description
# $.entities[].components{key}{key}ref:#/$defs/__schema0 anyOf[0] anyOf[0] anyOf[0] number no none none Missing source description
# $.entities[].components{key}{key}ref:#/$defs/__schema0 anyOf[0] anyOf[0] anyOf[1] string no none none Missing source description
# $.entities[].components{key}{key}ref:#/$defs/__schema0 anyOf[0] anyOf[0] anyOf[2] boolean no none none Missing source description
# $.entities[].components{key}{key}ref:#/$defs/__schema0 anyOf[0] anyOf[1] array no none none Missing source description
# $.entities[].components{key}{key}[]ref:#/$defs/__schema0 anyOf[0] anyOf[1] number yes none none Missing source description
# $.entities[].components{key}{key}ref:#/$defs/__schema0 anyOf[0] anyOf[2] array no none none Missing source description
# $.entities[].components{key}{key}[]ref:#/$defs/__schema0 anyOf[0] anyOf[2] string yes none none Missing source description
# $.entities[].components{key}{key}ref:#/$defs/__schema0 anyOf[0] anyOf[3] array no none none Missing source description
# $.entities[].components{key}{key}[]ref:#/$defs/__schema0 anyOf[0] anyOf[3] boolean yes none none Missing source description
# $.entities[].meshref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":false} Mesh geometry
# $.entities[].mesh.typeref:#/$defs/__schema0 anyOf[0] enum (7) yes none {"enum":["box","sphere","plane","cylinder","capsule","gltf","splat"]} Renderable type: a built-in mesh primitive, "gltf" for an external 3D model, or "splat" for a native Gaussian-splat asset
# $.entities[].mesh.argsref:#/$defs/__schema0 anyOf[0] array no none none Geometry constructor args — box: [w,h,d], sphere: [radius], cylinder: [rTop,rBot,h], capsule: [radius,length], plane: [w,h,widthSegments,heightSegments]
# $.entities[].mesh.args[]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.entities[].mesh.srcref:#/$defs/__schema0 anyOf[0] string no none none Path to the external render asset. Required for "gltf" (GLTF/GLB) and "splat" (SPZ)
# $.entities[].mesh.noderef:#/$defs/__schema0 anyOf[0] string no none none Name (or path) of a single node inside the referenced glTF (resolved via getObjectByName) to instantiate as this entity's geometry, instead of the whole file. The geometry stays SHARED from the cached glTF — nothing is copied out. Only meaningful with type: "gltf". CONSTRAINT: a skinned/animated node cannot be lifted out of its armature — if the named node is a SkinnedMesh (or contains one), resolving it throws (degrade loudly, not silently).
# $.entities[].mesh.instancesref:#/$defs/__schema0 anyOf[0] string no none none Path to an instance-transform asset (.instances.json: an array of [posX,posY,posZ, quatX,quatY,quatZ,quatW, scaleX,scaleY,scaleZ] tuples). Renders one THREE.InstancedMesh (one draw call). Bulk transform data is referenced as an asset, never inlined — keeps vscn thin.
# $.entities[].mesh.lodref:#/$defs/__schema0 anyOf[0] array no none none Per-entity Level-of-Detail: distance-keyed glTF sub-nodes swapped by camera distance (THREE.LOD). gltf-only. Gated by the environment.rendering.lod master toggle — when off, only the closest level renders. Cannot combine with node/instances.
# $.entities[].mesh.lod[]ref:#/$defs/__schema0 anyOf[0] object yes none {"additionalProperties":false} Missing source description
# $.entities[].mesh.lod[].distanceref:#/$defs/__schema0 anyOf[0] number yes none none Camera distance in world units at/beyond which this level shows (THREE.LOD threshold). Use 0 for the closest/highest-detail level.
# $.entities[].mesh.lod[].noderef:#/$defs/__schema0 anyOf[0] string yes none none Name of a node inside the referenced glTF (mesh.src) to show at this distance — resolved via getObjectByName, geometry shared (F4-style). A skinned node throws (atomic-subtree rule).
# $.entities[].materialref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":false} Material appearance
# $.entities[].material.typeref:#/$defs/__schema0 anyOf[0] enum (4) yes none {"enum":["standard","physical","basic","toon"]} Material shading model
# $.entities[].material.colorref:#/$defs/__schema0 anyOf[0] string no none none Base color as CSS hex string (e.g. "#ff0000")
# $.entities[].material.metalnessref:#/$defs/__schema0 anyOf[0] number no none none Metalness factor 0–1 (standard/physical only)
# $.entities[].material.roughnessref:#/$defs/__schema0 anyOf[0] number no none none Roughness factor 0–1 (standard/physical only)
# $.entities[].material.mapref:#/$defs/__schema0 anyOf[0] string no none none Path to albedo/diffuse texture image
# $.entities[].material.normalMapref:#/$defs/__schema0 anyOf[0] string no none none Path to normal map texture image
# $.entities[].material.emissiveref:#/$defs/__schema0 anyOf[0] string no none none Emissive color as CSS hex string
# $.entities[].material.emissiveIntensityref:#/$defs/__schema0 anyOf[0] number no none none Emissive light intensity multiplier
# $.entities[].material.emissiveMapref:#/$defs/__schema0 anyOf[0] string no none none Path to emissive map texture image
# $.entities[].material.aoMapref:#/$defs/__schema0 anyOf[0] string no none none Path to ambient occlusion map texture image
# $.entities[].material.lightMapref:#/$defs/__schema0 anyOf[0] string no none none Path to a baked lightmap texture (uses the mesh's second UV set). Applies the pre-baked GI/shadow result on top of the material.
# $.entities[].material.lightMapIntensityref:#/$defs/__schema0 anyOf[0] number no none none Lightmap intensity multiplier (default 1).
# $.entities[].material.roughnessMapref:#/$defs/__schema0 anyOf[0] string no none none Path to roughness map texture image
# $.entities[].material.metalnessMapref:#/$defs/__schema0 anyOf[0] string no none none Path to metalness map texture image
# $.entities[].material.opacityref:#/$defs/__schema0 anyOf[0] number no none none Opacity 0–1. Set transparent: true to enable
# $.entities[].material.transparentref:#/$defs/__schema0 anyOf[0] boolean no none none Enable alpha blending for this material
# $.entities[].material.sideref:#/$defs/__schema0 anyOf[0] enum (3) no none {"enum":["front","back","double"]} Which face sides to render
# $.entities[].material.flatShadingref:#/$defs/__schema0 anyOf[0] boolean no none none Use flat (faceted) shading instead of smooth
# $.entities[].material.clearcoatref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":false} Clearcoat layer (physical only)
# $.entities[].material.clearcoat.clearcoatref:#/$defs/__schema0 anyOf[0] number yes none none Clearcoat layer intensity 0–1
# $.entities[].material.clearcoat.clearcoatRoughnessref:#/$defs/__schema0 anyOf[0] number no none none Clearcoat roughness 0–1
# $.entities[].material.clearcoat.clearcoatMapref:#/$defs/__schema0 anyOf[0] string no none none Path to clearcoat intensity map
# $.entities[].material.clearcoat.clearcoatRoughnessMapref:#/$defs/__schema0 anyOf[0] string no none none Path to clearcoat roughness map
# $.entities[].material.transmissionref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":false} Light transmission (physical only)
# $.entities[].material.transmission.transmissionref:#/$defs/__schema0 anyOf[0] number yes none none Transmission intensity 0–1 (glass, liquid)
# $.entities[].material.transmission.iorref:#/$defs/__schema0 anyOf[0] number no none none Index of refraction (default 1.5)
# $.entities[].material.transmission.thicknessref:#/$defs/__schema0 anyOf[0] number no none none Volume thickness for refraction
# $.entities[].material.transmission.attenuationColorref:#/$defs/__schema0 anyOf[0] string no none none Color absorbed over distance
# $.entities[].material.transmission.attenuationDistanceref:#/$defs/__schema0 anyOf[0] number no none none Distance at which attenuation color takes full effect
# $.entities[].material.transmission.transmissionMapref:#/$defs/__schema0 anyOf[0] string no none none Path to transmission map
# $.entities[].material.sheenref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":false} Sheen layer (physical only)
# $.entities[].material.sheen.sheenref:#/$defs/__schema0 anyOf[0] number yes none none Sheen intensity 0–1 (fabric, velvet)
# $.entities[].material.sheen.sheenColorref:#/$defs/__schema0 anyOf[0] string no none none Sheen tint color
# $.entities[].material.sheen.sheenRoughnessref:#/$defs/__schema0 anyOf[0] number no none none Sheen roughness 0–1
# $.entities[].material.sheen.sheenColorMapref:#/$defs/__schema0 anyOf[0] string no none none Path to sheen color map
# $.entities[].material.sheen.sheenRoughnessMapref:#/$defs/__schema0 anyOf[0] string no none none Path to sheen roughness map
# $.entities[].material.iridescenceref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":false} Iridescence thin-film (physical only)
# $.entities[].material.iridescence.iridescenceref:#/$defs/__schema0 anyOf[0] number yes none none Iridescence intensity 0–1 (soap bubbles, oil slick)
# $.entities[].material.iridescence.iridescenceIORref:#/$defs/__schema0 anyOf[0] number no none none Thin-film IOR (default 1.3)
# $.entities[].material.iridescence.iridescenceThicknessRangeref:#/$defs/__schema0 anyOf[0] array no none none Min/max thin-film thickness in nm
# $.entities[].material.iridescence.iridescenceThicknessRange[0]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.entities[].material.iridescence.iridescenceThicknessRange[1]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.entities[].material.iridescence.iridescenceMapref:#/$defs/__schema0 anyOf[0] string no none none Path to iridescence intensity map
# $.entities[].material.iridescence.iridescenceThicknessMapref:#/$defs/__schema0 anyOf[0] string no none none Path to iridescence thickness map
# $.entities[].material.displacementMapref:#/$defs/__schema0 anyOf[0] string no none none Path to displacement/height map
# $.entities[].material.displacementScaleref:#/$defs/__schema0 anyOf[0] number no none none Displacement height multiplier
# $.entities[].material.displacementBiasref:#/$defs/__schema0 anyOf[0] number no none none Displacement offset
# $.entities[].lightref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":false} Light source
# $.entities[].light.typeref:#/$defs/__schema0 anyOf[0] enum (5) yes none {"enum":["directional","point","spot","hemisphere","area"]} Light type
# $.entities[].light.colorref:#/$defs/__schema0 anyOf[0] string no none none Light color as CSS hex string
# $.entities[].light.intensityref:#/$defs/__schema0 anyOf[0] number no none none Native Three.js light intensity. Point and spot lights use candela with inverse-square falloff (a value near 1 is candle-scale); area lights use nit; directional and hemisphere lights use Three.js scene-light intensity units.
# $.entities[].light.groundColorref:#/$defs/__schema0 anyOf[0] string no none none Ground color for hemisphere lights
# $.entities[].light.distanceref:#/$defs/__schema0 anyOf[0] number no none none Maximum range of the light. 0 = infinite (point/spot only)
# $.entities[].light.decayref:#/$defs/__schema0 anyOf[0] number no none {"minimum":0} Native Three.js distance-decay exponent for point/spot lights. Default 2 gives physically correct inverse-square falloff.
# $.entities[].light.angleref:#/$defs/__schema0 anyOf[0] number no none none Spotlight cone angle in radians (spot only)
# $.entities[].light.penumbraref:#/$defs/__schema0 anyOf[0] number no none none Spotlight penumbra softness 0–1 (spot only)
# $.entities[].light.widthref:#/$defs/__schema0 anyOf[0] number no none none Area light width (area only). RectAreaLight has NO shadow support and only affects Standard/Physical materials — degrades loudly, not silently.
# $.entities[].light.heightref:#/$defs/__schema0 anyOf[0] number no none none Area light height (area only). RectAreaLight has NO shadow support and only affects Standard/Physical materials — degrades loudly, not silently.
# $.entities[].shadowref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":false} Shadow configuration
# $.entities[].shadow.enabledref:#/$defs/__schema0 anyOf[0] boolean yes none none Whether this light casts shadows
# $.entities[].shadow.mapSizeref:#/$defs/__schema0 anyOf[0] number no none none Shadow map resolution in pixels (e.g. 1024, 2048)
# $.entities[].shadow.cameraref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":false} Shadow camera frustum bounds (directional lights)
# $.entities[].shadow.camera.leftref:#/$defs/__schema0 anyOf[0] number no none none Left bound of shadow camera frustum
# $.entities[].shadow.camera.rightref:#/$defs/__schema0 anyOf[0] number no none none Right bound of shadow camera frustum
# $.entities[].shadow.camera.topref:#/$defs/__schema0 anyOf[0] number no none none Top bound of shadow camera frustum
# $.entities[].shadow.camera.bottomref:#/$defs/__schema0 anyOf[0] number no none none Bottom bound of shadow camera frustum
# $.entities[].shadow.radiusref:#/$defs/__schema0 anyOf[0] number no none none Shadow map blur radius for soft shadows
# $.entities[].shadow.biasref:#/$defs/__schema0 anyOf[0] number no none none Shadow bias to reduce shadow acne artifacts
# $.entities[].physicsref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":false} Physics rigid body
# $.entities[].physics.bodyTyperef:#/$defs/__schema0 anyOf[0] enum (3) yes none {"enum":["dynamic","fixed","kinematic"]} Physics body type: dynamic (simulated), fixed (immovable), kinematic (script-driven). T1.1/R1c: ANY physics body (dynamic, fixed, OR kinematic) nested under an ancestor entity that itself has a "dynamic" or "kinematic" body is unsupported (loud load error) — Rapier has no parent/child body relationship, so a moving ancestor cannot carry a nested body of ANY type with it; the child's Object3D would stay pinned to its own (non-moving) body's pose while the ancestor moves out from under it. Nesting under a "fixed"/static or physics-less transformed ancestor is fine.
# $.entities[].physics.massref:#/$defs/__schema0 anyOf[0] number no none none Explicit mass override. If omitted, computed from collider density and volume
# $.entities[].physics.colliderref:#/$defs/__schema0 anyOf[0] object yes none {"additionalProperties":false} Collider shape attached to this body. T1.1/T1.2: the Rapier body is created at this entity's COMPOSED WORLD transform (parent chain × own local transform) — Rapier has no concept of a parent Object3D, so nested entities' transforms are baked in at spawn time, not read live thereafter.
# $.entities[].physics.collider.typeref:#/$defs/__schema0 anyOf[0] enum (4) yes none {"enum":["cuboid","ball","capsule","trimesh"]} Collider shape type. T1.2: every shape scales with the entity's composed world scale (self × ancestors) — for trimesh this means the entity's own mesh geometry vertices are pre-scaled per-axis before building the Rapier trimesh, so it matches whatever size ends up on screen; it does not require the collider's own dimension fields.
# $.entities[].physics.collider.halfExtentsref:#/$defs/__schema0 anyOf[0] array no none none Half-size [x, y, z] for cuboid colliders, in the ENTITY'S OWN LOCAL units. T1.2: scales with the entity — the actual Rapier collider is this value times the entity's composed world scale (self × every transformed ancestor), per axis, baked in once at load time (Rapier has no live notion of an Object3D's scale).
# $.entities[].physics.collider.halfExtents[0]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.entities[].physics.collider.halfExtents[1]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.entities[].physics.collider.halfExtents[2]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.entities[].physics.collider.radiusref:#/$defs/__schema0 anyOf[0] number no none none Radius for ball and capsule colliders, in the ENTITY'S OWN LOCAL units. T1.2: scales with the entity's composed world scale, which MUST be uniform on the collider's round axes (ball: all of x/y/z; capsule: x and z) — a non-uniform scale there throws a loud load error (Rapier balls/capsules cannot represent an ellipse).
# $.entities[].physics.collider.halfHeightref:#/$defs/__schema0 anyOf[0] number no none none Half-height for capsule colliders, in the entity's own local units, along the capsule's axis (Y). T1.2: scales by the entity's composed world scale on that axis.
# $.entities[].physics.collider.frictionref:#/$defs/__schema0 anyOf[0] number no none none Surface friction coefficient
# $.entities[].physics.collider.restitutionref:#/$defs/__schema0 anyOf[0] number no none none Bounciness coefficient (0 = no bounce, 1 = perfect bounce)
# $.entities[].physics.collider.densityref:#/$defs/__schema0 anyOf[0] number no none none Mass density. Used to compute mass from collider volume
# $.entities[].physics.collider.offsetref:#/$defs/__schema0 anyOf[0] array no none none Translation offset relative to body origin, in the ENTITY'S OWN LOCAL units. T1.2/R1c: scales with the entity's composed world scale (self × every transformed ancestor), per axis, the same way halfExtents/radius/halfHeight do — an unscaled offset would silently drift away from the entity's visual anchor point under any non-1 scale.
# $.entities[].physics.collider.offset[0]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.entities[].physics.collider.offset[1]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.entities[].physics.collider.offset[2]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.entities[].physics.collider.isSensorref:#/$defs/__schema0 anyOf[0] boolean no none none When true, detects overlaps without physical blocking (trigger volume)
# $.entities[].physics.collider.collisionGroupsref:#/$defs/__schema0 anyOf[0] number no none none Bitmask: collision layers this collider belongs to (max 16 bits)
# $.entities[].physics.collider.collisionFilterref:#/$defs/__schema0 anyOf[0] number no none none Bitmask: collision layers this collider interacts with (max 16 bits)
# $.entities[].cameraref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":false} Camera
# $.entities[].camera.typeref:#/$defs/__schema0 anyOf[0] enum (2) yes none {"enum":["perspective","orthographic"]} Camera projection type
# $.entities[].camera.fovref:#/$defs/__schema0 anyOf[0] number no none none Vertical field of view in degrees (perspective only)
# $.entities[].camera.nearref:#/$defs/__schema0 anyOf[0] number no none none Near clipping plane distance
# $.entities[].camera.farref:#/$defs/__schema0 anyOf[0] number no none none Far clipping plane distance
# $.entities[].camera.orthoSizeref:#/$defs/__schema0 anyOf[0] number no none none Half-height of the orthographic frustum (orthographic only)
# $.entities[].camera.widthref:#/$defs/__schema0 anyOf[0] number no none none Render width in pixels. Defaults to viewport width
# $.entities[].camera.heightref:#/$defs/__schema0 anyOf[0] number no none none Render height in pixels. Defaults to viewport height
# $.entities[].audioref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":false} Audio source
# $.entities[].audio.srcref:#/$defs/__schema0 anyOf[0] string no none none Path to audio file (WAV, MP3, OGG)
# $.entities[].audio.spatialref:#/$defs/__schema0 anyOf[0] boolean no none none Enable 3D spatial audio (positional sound)
# $.entities[].audio.volumeref:#/$defs/__schema0 anyOf[0] number no none none Playback volume 0–1
# $.entities[].audio.refDistanceref:#/$defs/__schema0 anyOf[0] number no none none Distance at which volume starts to attenuate (spatial only)
# $.entities[].audio.rolloffFactorref:#/$defs/__schema0 anyOf[0] number no none none How quickly volume attenuates with distance (spatial only)
# $.entities[].audio.maxDistanceref:#/$defs/__schema0 anyOf[0] number no none none Maximum distance at which sound is audible (spatial only)
# $.entities[].audio.loopref:#/$defs/__schema0 anyOf[0] boolean no none none Whether the audio should loop
# $.entities[].audio.autoplayref:#/$defs/__schema0 anyOf[0] boolean no none none Start playing automatically when the scene loads
# $.entities[].animationref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":false} Animation configuration
# $.entities[].animation.autoplayref:#/$defs/__schema0 anyOf[0] string no none none Clip name to play automatically on load
# $.entities[].animation.loopref:#/$defs/__schema0 anyOf[0] boolean no none none Whether the autoplay clip should loop
# $.entities[].animation.clipAliasesref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}} Map raw GLTF clip names to clean names
# $.entities[].animation.clipAliases{key}ref:#/$defs/__schema0 anyOf[0] string no none none Missing source description
# $.entities[].particlesref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":false} Particle system
# $.entities[].particles.autoDestroyref:#/$defs/__schema0 anyOf[0] boolean no none none Destroy the particle system when all particles have died
# $.entities[].particles.loopingref:#/$defs/__schema0 anyOf[0] boolean no none none Continuously emit particles
# $.entities[].particles.prewarmref:#/$defs/__schema0 anyOf[0] boolean no none none Simulate one full cycle on start so particles appear immediately
# $.entities[].particles.durationref:#/$defs/__schema0 anyOf[0] number no none none Total emission duration in seconds
# $.entities[].particles.shaperef:#/$defs/__schema0 anyOf[0] oneOf (8) no none none Emitter shape that defines where particles spawn
# $.entities[].particles.shaperef:#/$defs/__schema0 anyOf[0] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.shape.typeref:#/$defs/__schema0 anyOf[0] oneOf[0] const "point" yes none {"const":"point"} Missing source description
# $.entities[].particles.shaperef:#/$defs/__schema0 anyOf[0] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.shape.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] const "sphere" yes none {"const":"sphere"} Missing source description
# $.entities[].particles.shape.radiusref:#/$defs/__schema0 anyOf[0] oneOf[1] number no none none Sphere radius
# $.entities[].particles.shape.arcref:#/$defs/__schema0 anyOf[0] oneOf[1] number no none none Arc angle in radians (2π = full sphere)
# $.entities[].particles.shape.thicknessref:#/$defs/__schema0 anyOf[0] oneOf[1] number no none none Shell thickness 0–1 (1 = solid, 0 = surface only)
# $.entities[].particles.shaperef:#/$defs/__schema0 anyOf[0] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.shape.typeref:#/$defs/__schema0 anyOf[0] oneOf[2] const "hemisphere" yes none {"const":"hemisphere"} Missing source description
# $.entities[].particles.shape.radiusref:#/$defs/__schema0 anyOf[0] oneOf[2] number no none none Hemisphere radius
# $.entities[].particles.shape.arcref:#/$defs/__schema0 anyOf[0] oneOf[2] number no none none Arc angle in radians
# $.entities[].particles.shape.thicknessref:#/$defs/__schema0 anyOf[0] oneOf[2] number no none none Shell thickness 0–1
# $.entities[].particles.shaperef:#/$defs/__schema0 anyOf[0] oneOf[3] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.shape.typeref:#/$defs/__schema0 anyOf[0] oneOf[3] const "cone" yes none {"const":"cone"} Missing source description
# $.entities[].particles.shape.radiusref:#/$defs/__schema0 anyOf[0] oneOf[3] number no none none Cone base radius
# $.entities[].particles.shape.arcref:#/$defs/__schema0 anyOf[0] oneOf[3] number no none none Arc angle in radians
# $.entities[].particles.shape.thicknessref:#/$defs/__schema0 anyOf[0] oneOf[3] number no none none Shell thickness 0–1
# $.entities[].particles.shape.angleref:#/$defs/__schema0 anyOf[0] oneOf[3] number no none none Cone opening angle in radians
# $.entities[].particles.shaperef:#/$defs/__schema0 anyOf[0] oneOf[4] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.shape.typeref:#/$defs/__schema0 anyOf[0] oneOf[4] const "circle" yes none {"const":"circle"} Missing source description
# $.entities[].particles.shape.radiusref:#/$defs/__schema0 anyOf[0] oneOf[4] number no none none Circle radius
# $.entities[].particles.shape.arcref:#/$defs/__schema0 anyOf[0] oneOf[4] number no none none Arc angle in radians
# $.entities[].particles.shape.thicknessref:#/$defs/__schema0 anyOf[0] oneOf[4] number no none none Ring thickness 0–1
# $.entities[].particles.shaperef:#/$defs/__schema0 anyOf[0] oneOf[5] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.shape.typeref:#/$defs/__schema0 anyOf[0] oneOf[5] const "donut" yes none {"const":"donut"} Missing source description
# $.entities[].particles.shape.radiusref:#/$defs/__schema0 anyOf[0] oneOf[5] number no none none Donut major radius
# $.entities[].particles.shape.arcref:#/$defs/__schema0 anyOf[0] oneOf[5] number no none none Arc angle in radians
# $.entities[].particles.shape.thicknessref:#/$defs/__schema0 anyOf[0] oneOf[5] number no none none Ring thickness 0–1
# $.entities[].particles.shape.donutRadiusref:#/$defs/__schema0 anyOf[0] oneOf[5] number no none none Donut tube (minor) radius
# $.entities[].particles.shaperef:#/$defs/__schema0 anyOf[0] oneOf[6] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.shape.typeref:#/$defs/__schema0 anyOf[0] oneOf[6] const "rectangle" yes none {"const":"rectangle"} Missing source description
# $.entities[].particles.shape.widthref:#/$defs/__schema0 anyOf[0] oneOf[6] number no none none Rectangle width
# $.entities[].particles.shape.heightref:#/$defs/__schema0 anyOf[0] oneOf[6] number no none none Rectangle height
# $.entities[].particles.shape.thicknessref:#/$defs/__schema0 anyOf[0] oneOf[6] number no none none Extrusion depth 0–1
# $.entities[].particles.shaperef:#/$defs/__schema0 anyOf[0] oneOf[7] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.shape.typeref:#/$defs/__schema0 anyOf[0] oneOf[7] const "grid" yes none {"const":"grid"} Missing source description
# $.entities[].particles.shape.widthref:#/$defs/__schema0 anyOf[0] oneOf[7] number no none none Grid total width
# $.entities[].particles.shape.heightref:#/$defs/__schema0 anyOf[0] oneOf[7] number no none none Grid total height
# $.entities[].particles.shape.columnref:#/$defs/__schema0 anyOf[0] oneOf[7] integer no none {"minimum":-9007199254740991,"maximum":9007199254740991} Number of columns
# $.entities[].particles.shape.rowref:#/$defs/__schema0 anyOf[0] oneOf[7] integer no none {"minimum":-9007199254740991,"maximum":9007199254740991} Number of rows
# $.entities[].particles.startLiferef:#/$defs/__schema0 anyOf[0] oneOf (3) no none none Initial particle lifetime in seconds
# $.entities[].particles.startLiferef:#/$defs/__schema0 anyOf[0] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startLife.typeref:#/$defs/__schema0 anyOf[0] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.startLife.valueref:#/$defs/__schema0 anyOf[0] oneOf[0] number yes none none Missing source description
# $.entities[].particles.startLiferef:#/$defs/__schema0 anyOf[0] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startLife.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.startLife.aref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.entities[].particles.startLife.bref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.entities[].particles.startLiferef:#/$defs/__schema0 anyOf[0] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startLife.typeref:#/$defs/__schema0 anyOf[0] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.startLife.functionsref:#/$defs/__schema0 anyOf[0] oneOf[2] array yes none none Missing source description
# $.entities[].particles.startLife.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startLife.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startLife.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startLife.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startLife.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startLife.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startLife.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startSpeedref:#/$defs/__schema0 anyOf[0] oneOf (3) no none none Initial particle speed
# $.entities[].particles.startSpeedref:#/$defs/__schema0 anyOf[0] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startSpeed.typeref:#/$defs/__schema0 anyOf[0] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.startSpeed.valueref:#/$defs/__schema0 anyOf[0] oneOf[0] number yes none none Missing source description
# $.entities[].particles.startSpeedref:#/$defs/__schema0 anyOf[0] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startSpeed.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.startSpeed.aref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.entities[].particles.startSpeed.bref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.entities[].particles.startSpeedref:#/$defs/__schema0 anyOf[0] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startSpeed.typeref:#/$defs/__schema0 anyOf[0] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.startSpeed.functionsref:#/$defs/__schema0 anyOf[0] oneOf[2] array yes none none Missing source description
# $.entities[].particles.startSpeed.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startSpeed.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startSpeed.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startSpeed.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startSpeed.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startSpeed.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startSpeed.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startSizeref:#/$defs/__schema0 anyOf[0] oneOf (3) no none none Initial particle size
# $.entities[].particles.startSizeref:#/$defs/__schema0 anyOf[0] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startSize.typeref:#/$defs/__schema0 anyOf[0] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.startSize.valueref:#/$defs/__schema0 anyOf[0] oneOf[0] number yes none none Missing source description
# $.entities[].particles.startSizeref:#/$defs/__schema0 anyOf[0] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startSize.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.startSize.aref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.entities[].particles.startSize.bref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.entities[].particles.startSizeref:#/$defs/__schema0 anyOf[0] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startSize.typeref:#/$defs/__schema0 anyOf[0] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.startSize.functionsref:#/$defs/__schema0 anyOf[0] oneOf[2] array yes none none Missing source description
# $.entities[].particles.startSize.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startSize.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startSize.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startSize.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startSize.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startSize.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startSize.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startRotationref:#/$defs/__schema0 anyOf[0] oneOf (3) no none none Initial particle rotation in radians
# $.entities[].particles.startRotationref:#/$defs/__schema0 anyOf[0] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startRotation.typeref:#/$defs/__schema0 anyOf[0] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.startRotation.valueref:#/$defs/__schema0 anyOf[0] oneOf[0] number yes none none Missing source description
# $.entities[].particles.startRotationref:#/$defs/__schema0 anyOf[0] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startRotation.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.startRotation.aref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.entities[].particles.startRotation.bref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.entities[].particles.startRotationref:#/$defs/__schema0 anyOf[0] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startRotation.typeref:#/$defs/__schema0 anyOf[0] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.startRotation.functionsref:#/$defs/__schema0 anyOf[0] oneOf[2] array yes none none Missing source description
# $.entities[].particles.startRotation.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startRotation.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startRotation.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startRotation.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startRotation.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startRotation.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startRotation.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startColorref:#/$defs/__schema0 anyOf[0] oneOf (4) no none none Initial particle color
# $.entities[].particles.startColorref:#/$defs/__schema0 anyOf[0] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.typeref:#/$defs/__schema0 anyOf[0] oneOf[0] const "ConstantColor" yes none {"const":"ConstantColor"} Missing source description
# $.entities[].particles.startColor.colorref:#/$defs/__schema0 anyOf[0] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.color.rref:#/$defs/__schema0 anyOf[0] oneOf[0] number yes none none Missing source description
# $.entities[].particles.startColor.color.gref:#/$defs/__schema0 anyOf[0] oneOf[0] number yes none none Missing source description
# $.entities[].particles.startColor.color.bref:#/$defs/__schema0 anyOf[0] oneOf[0] number yes none none Missing source description
# $.entities[].particles.startColor.color.aref:#/$defs/__schema0 anyOf[0] oneOf[0] number yes none none Missing source description
# $.entities[].particles.startColorref:#/$defs/__schema0 anyOf[0] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] const "ColorRange" yes none {"const":"ColorRange"} Missing source description
# $.entities[].particles.startColor.aref:#/$defs/__schema0 anyOf[0] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.a.rref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.entities[].particles.startColor.a.gref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.entities[].particles.startColor.a.bref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.entities[].particles.startColor.a.aref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.entities[].particles.startColor.bref:#/$defs/__schema0 anyOf[0] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.b.rref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.entities[].particles.startColor.b.gref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.entities[].particles.startColor.b.bref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.entities[].particles.startColor.b.aref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.entities[].particles.startColorref:#/$defs/__schema0 anyOf[0] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.typeref:#/$defs/__schema0 anyOf[0] oneOf[2] const "Gradient" yes none {"const":"Gradient"} Missing source description
# $.entities[].particles.startColor.colorref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.color.typeref:#/$defs/__schema0 anyOf[0] oneOf[2] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.entities[].particles.startColor.color.subTyperef:#/$defs/__schema0 anyOf[0] oneOf[2] const "Color" yes none {"const":"Color"} Missing source description
# $.entities[].particles.startColor.color.keysref:#/$defs/__schema0 anyOf[0] oneOf[2] array yes none none Missing source description
# $.entities[].particles.startColor.color.keys[]ref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.color.keys[].valueref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.color.keys[].value.rref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startColor.color.keys[].value.gref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startColor.color.keys[].value.bref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startColor.color.keys[].posref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startColor.alpharef:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.alpha.typeref:#/$defs/__schema0 anyOf[0] oneOf[2] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.entities[].particles.startColor.alpha.subTyperef:#/$defs/__schema0 anyOf[0] oneOf[2] const "Number" yes none {"const":"Number"} Missing source description
# $.entities[].particles.startColor.alpha.keysref:#/$defs/__schema0 anyOf[0] oneOf[2] array yes none none Missing source description
# $.entities[].particles.startColor.alpha.keys[]ref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.alpha.keys[].valueref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startColor.alpha.keys[].posref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startColorref:#/$defs/__schema0 anyOf[0] oneOf[3] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.typeref:#/$defs/__schema0 anyOf[0] oneOf[3] const "RandomColorBetweenGradient" yes none {"const":"RandomColorBetweenGradient"} Missing source description
# $.entities[].particles.startColor.gradient1ref:#/$defs/__schema0 anyOf[0] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.gradient1.typeref:#/$defs/__schema0 anyOf[0] oneOf[3] const "Gradient" yes none {"const":"Gradient"} Missing source description
# $.entities[].particles.startColor.gradient1.colorref:#/$defs/__schema0 anyOf[0] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.gradient1.color.typeref:#/$defs/__schema0 anyOf[0] oneOf[3] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.entities[].particles.startColor.gradient1.color.subTyperef:#/$defs/__schema0 anyOf[0] oneOf[3] const "Color" yes none {"const":"Color"} Missing source description
# $.entities[].particles.startColor.gradient1.color.keysref:#/$defs/__schema0 anyOf[0] oneOf[3] array yes none none Missing source description
# $.entities[].particles.startColor.gradient1.color.keys[]ref:#/$defs/__schema0 anyOf[0] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.gradient1.color.keys[].valueref:#/$defs/__schema0 anyOf[0] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.gradient1.color.keys[].value.rref:#/$defs/__schema0 anyOf[0] oneOf[3] number yes none none Missing source description
# $.entities[].particles.startColor.gradient1.color.keys[].value.gref:#/$defs/__schema0 anyOf[0] oneOf[3] number yes none none Missing source description
# $.entities[].particles.startColor.gradient1.color.keys[].value.bref:#/$defs/__schema0 anyOf[0] oneOf[3] number yes none none Missing source description
# $.entities[].particles.startColor.gradient1.color.keys[].posref:#/$defs/__schema0 anyOf[0] oneOf[3] number yes none none Missing source description
# $.entities[].particles.startColor.gradient1.alpharef:#/$defs/__schema0 anyOf[0] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.gradient1.alpha.typeref:#/$defs/__schema0 anyOf[0] oneOf[3] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.entities[].particles.startColor.gradient1.alpha.subTyperef:#/$defs/__schema0 anyOf[0] oneOf[3] const "Number" yes none {"const":"Number"} Missing source description
# $.entities[].particles.startColor.gradient1.alpha.keysref:#/$defs/__schema0 anyOf[0] oneOf[3] array yes none none Missing source description
# $.entities[].particles.startColor.gradient1.alpha.keys[]ref:#/$defs/__schema0 anyOf[0] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.gradient1.alpha.keys[].valueref:#/$defs/__schema0 anyOf[0] oneOf[3] number yes none none Missing source description
# $.entities[].particles.startColor.gradient1.alpha.keys[].posref:#/$defs/__schema0 anyOf[0] oneOf[3] number yes none none Missing source description
# $.entities[].particles.startColor.gradient2ref:#/$defs/__schema0 anyOf[0] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.gradient2.typeref:#/$defs/__schema0 anyOf[0] oneOf[3] const "Gradient" yes none {"const":"Gradient"} Missing source description
# $.entities[].particles.startColor.gradient2.colorref:#/$defs/__schema0 anyOf[0] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.gradient2.color.typeref:#/$defs/__schema0 anyOf[0] oneOf[3] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.entities[].particles.startColor.gradient2.color.subTyperef:#/$defs/__schema0 anyOf[0] oneOf[3] const "Color" yes none {"const":"Color"} Missing source description
# $.entities[].particles.startColor.gradient2.color.keysref:#/$defs/__schema0 anyOf[0] oneOf[3] array yes none none Missing source description
# $.entities[].particles.startColor.gradient2.color.keys[]ref:#/$defs/__schema0 anyOf[0] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.gradient2.color.keys[].valueref:#/$defs/__schema0 anyOf[0] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.gradient2.color.keys[].value.rref:#/$defs/__schema0 anyOf[0] oneOf[3] number yes none none Missing source description
# $.entities[].particles.startColor.gradient2.color.keys[].value.gref:#/$defs/__schema0 anyOf[0] oneOf[3] number yes none none Missing source description
# $.entities[].particles.startColor.gradient2.color.keys[].value.bref:#/$defs/__schema0 anyOf[0] oneOf[3] number yes none none Missing source description
# $.entities[].particles.startColor.gradient2.color.keys[].posref:#/$defs/__schema0 anyOf[0] oneOf[3] number yes none none Missing source description
# $.entities[].particles.startColor.gradient2.alpharef:#/$defs/__schema0 anyOf[0] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.gradient2.alpha.typeref:#/$defs/__schema0 anyOf[0] oneOf[3] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.entities[].particles.startColor.gradient2.alpha.subTyperef:#/$defs/__schema0 anyOf[0] oneOf[3] const "Number" yes none {"const":"Number"} Missing source description
# $.entities[].particles.startColor.gradient2.alpha.keysref:#/$defs/__schema0 anyOf[0] oneOf[3] array yes none none Missing source description
# $.entities[].particles.startColor.gradient2.alpha.keys[]ref:#/$defs/__schema0 anyOf[0] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.gradient2.alpha.keys[].valueref:#/$defs/__schema0 anyOf[0] oneOf[3] number yes none none Missing source description
# $.entities[].particles.startColor.gradient2.alpha.keys[].posref:#/$defs/__schema0 anyOf[0] oneOf[3] number yes none none Missing source description
# $.entities[].particles.startLengthref:#/$defs/__schema0 anyOf[0] oneOf (3) no none none Initial trail length (trail render mode only)
# $.entities[].particles.startLengthref:#/$defs/__schema0 anyOf[0] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startLength.typeref:#/$defs/__schema0 anyOf[0] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.startLength.valueref:#/$defs/__schema0 anyOf[0] oneOf[0] number yes none none Missing source description
# $.entities[].particles.startLengthref:#/$defs/__schema0 anyOf[0] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startLength.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.startLength.aref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.entities[].particles.startLength.bref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.entities[].particles.startLengthref:#/$defs/__schema0 anyOf[0] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startLength.typeref:#/$defs/__schema0 anyOf[0] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.startLength.functionsref:#/$defs/__schema0 anyOf[0] oneOf[2] array yes none none Missing source description
# $.entities[].particles.startLength.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startLength.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startLength.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startLength.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startLength.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startLength.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startLength.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startTileIndexref:#/$defs/__schema0 anyOf[0] oneOf (3) no none none Initial sprite sheet tile index
# $.entities[].particles.startTileIndexref:#/$defs/__schema0 anyOf[0] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startTileIndex.typeref:#/$defs/__schema0 anyOf[0] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.startTileIndex.valueref:#/$defs/__schema0 anyOf[0] oneOf[0] number yes none none Missing source description
# $.entities[].particles.startTileIndexref:#/$defs/__schema0 anyOf[0] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startTileIndex.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.startTileIndex.aref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.entities[].particles.startTileIndex.bref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.entities[].particles.startTileIndexref:#/$defs/__schema0 anyOf[0] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startTileIndex.typeref:#/$defs/__schema0 anyOf[0] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.startTileIndex.functionsref:#/$defs/__schema0 anyOf[0] oneOf[2] array yes none none Missing source description
# $.entities[].particles.startTileIndex.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startTileIndex.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startTileIndex.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startTileIndex.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startTileIndex.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startTileIndex.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startTileIndex.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.emissionOverTimeref:#/$defs/__schema0 anyOf[0] oneOf (3) no none none Particles emitted per second
# $.entities[].particles.emissionOverTimeref:#/$defs/__schema0 anyOf[0] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.emissionOverTime.typeref:#/$defs/__schema0 anyOf[0] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.emissionOverTime.valueref:#/$defs/__schema0 anyOf[0] oneOf[0] number yes none none Missing source description
# $.entities[].particles.emissionOverTimeref:#/$defs/__schema0 anyOf[0] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.emissionOverTime.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.emissionOverTime.aref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.entities[].particles.emissionOverTime.bref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.entities[].particles.emissionOverTimeref:#/$defs/__schema0 anyOf[0] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.emissionOverTime.typeref:#/$defs/__schema0 anyOf[0] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.emissionOverTime.functionsref:#/$defs/__schema0 anyOf[0] oneOf[2] array yes none none Missing source description
# $.entities[].particles.emissionOverTime.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.emissionOverTime.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.emissionOverTime.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.emissionOverTime.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.emissionOverTime.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.emissionOverTime.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.emissionOverTime.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.emissionOverDistanceref:#/$defs/__schema0 anyOf[0] oneOf (3) no none none Particles emitted per unit of emitter movement
# $.entities[].particles.emissionOverDistanceref:#/$defs/__schema0 anyOf[0] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.emissionOverDistance.typeref:#/$defs/__schema0 anyOf[0] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.emissionOverDistance.valueref:#/$defs/__schema0 anyOf[0] oneOf[0] number yes none none Missing source description
# $.entities[].particles.emissionOverDistanceref:#/$defs/__schema0 anyOf[0] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.emissionOverDistance.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.emissionOverDistance.aref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.entities[].particles.emissionOverDistance.bref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.entities[].particles.emissionOverDistanceref:#/$defs/__schema0 anyOf[0] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.emissionOverDistance.typeref:#/$defs/__schema0 anyOf[0] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.emissionOverDistance.functionsref:#/$defs/__schema0 anyOf[0] oneOf[2] array yes none none Missing source description
# $.entities[].particles.emissionOverDistance.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.emissionOverDistance.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.emissionOverDistance.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.emissionOverDistance.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.emissionOverDistance.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.emissionOverDistance.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.emissionOverDistance.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.emissionBurstsref:#/$defs/__schema0 anyOf[0] array no none none Timed burst emissions
# $.entities[].particles.emissionBursts[]ref:#/$defs/__schema0 anyOf[0] object yes none {"additionalProperties":false} Timed particle burst
# $.entities[].particles.emissionBursts[].timeref:#/$defs/__schema0 anyOf[0] number yes none none Time offset in seconds within the emission cycle
# $.entities[].particles.emissionBursts[].countref:#/$defs/__schema0 anyOf[0] oneOf (3) yes none none Number of particles to emit
# $.entities[].particles.emissionBursts[].countref:#/$defs/__schema0 anyOf[0] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.emissionBursts[].count.typeref:#/$defs/__schema0 anyOf[0] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.emissionBursts[].count.valueref:#/$defs/__schema0 anyOf[0] oneOf[0] number yes none none Missing source description
# $.entities[].particles.emissionBursts[].countref:#/$defs/__schema0 anyOf[0] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.emissionBursts[].count.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.emissionBursts[].count.aref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.entities[].particles.emissionBursts[].count.bref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.entities[].particles.emissionBursts[].countref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.emissionBursts[].count.typeref:#/$defs/__schema0 anyOf[0] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.emissionBursts[].count.functionsref:#/$defs/__schema0 anyOf[0] oneOf[2] array yes none none Missing source description
# $.entities[].particles.emissionBursts[].count.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.emissionBursts[].count.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.emissionBursts[].count.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.emissionBursts[].count.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.emissionBursts[].count.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.emissionBursts[].count.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.emissionBursts[].count.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.emissionBursts[].cycleref:#/$defs/__schema0 anyOf[0] number no none none Burst repeat interval in seconds
# $.entities[].particles.emissionBursts[].intervalref:#/$defs/__schema0 anyOf[0] number no none none Delay between burst repetitions
# $.entities[].particles.emissionBursts[].probabilityref:#/$defs/__schema0 anyOf[0] number no none none Chance of burst firing (0–1)
# $.entities[].particles.behaviorsref:#/$defs/__schema0 anyOf[0] array no none none Behaviors applied to particles over their lifetime
# $.entities[].particles.behaviors[]ref:#/$defs/__schema0 anyOf[0] oneOf (14) yes none none Particle behavior applied over lifetime
# $.entities[].particles.behaviors[]ref:#/$defs/__schema0 anyOf[0] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].typeref:#/$defs/__schema0 anyOf[0] oneOf[0] const "ApplyForce" yes none {"const":"ApplyForce"} Missing source description
# $.entities[].particles.behaviors[].directionref:#/$defs/__schema0 anyOf[0] oneOf[0] array yes none none Force direction vector
# $.entities[].particles.behaviors[].direction[0]ref:#/$defs/__schema0 anyOf[0] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].direction[1]ref:#/$defs/__schema0 anyOf[0] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].direction[2]ref:#/$defs/__schema0 anyOf[0] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].magnituderef:#/$defs/__schema0 anyOf[0] oneOf[0] oneOf (3) yes none none Force magnitude
# $.entities[].particles.behaviors[].magnituderef:#/$defs/__schema0 anyOf[0] oneOf[0] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].magnitude.typeref:#/$defs/__schema0 anyOf[0] oneOf[0] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.behaviors[].magnitude.valueref:#/$defs/__schema0 anyOf[0] oneOf[0] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].magnituderef:#/$defs/__schema0 anyOf[0] oneOf[0] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].magnitude.typeref:#/$defs/__schema0 anyOf[0] oneOf[0] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.behaviors[].magnitude.aref:#/$defs/__schema0 anyOf[0] oneOf[0] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].magnitude.bref:#/$defs/__schema0 anyOf[0] oneOf[0] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].magnituderef:#/$defs/__schema0 anyOf[0] oneOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].magnitude.typeref:#/$defs/__schema0 anyOf[0] oneOf[0] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.behaviors[].magnitude.functionsref:#/$defs/__schema0 anyOf[0] oneOf[0] oneOf[2] array yes none none Missing source description
# $.entities[].particles.behaviors[].magnitude.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].magnitude.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].magnitude.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].magnitude.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].magnitude.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].magnitude.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].magnitude.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[]ref:#/$defs/__schema0 anyOf[0] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].typeref:#/$defs/__schema0 anyOf[0] oneOf[1] const "ColorOverLife" yes none {"const":"ColorOverLife"} Missing source description
# $.entities[].particles.behaviors[].colorref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf (4) yes none none Color curve over particle lifetime
# $.entities[].particles.behaviors[].colorref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[0] const "ConstantColor" yes none {"const":"ConstantColor"} Missing source description
# $.entities[].particles.behaviors[].color.colorref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.color.rref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.color.gref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.color.bref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.color.aref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].colorref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[1] const "ColorRange" yes none {"const":"ColorRange"} Missing source description
# $.entities[].particles.behaviors[].color.aref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.a.rref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.a.gref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.a.bref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.a.aref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.bref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.b.rref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.b.gref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.b.bref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.b.aref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].colorref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[2] const "Gradient" yes none {"const":"Gradient"} Missing source description
# $.entities[].particles.behaviors[].color.colorref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.color.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[2] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.entities[].particles.behaviors[].color.color.subTyperef:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[2] const "Color" yes none {"const":"Color"} Missing source description
# $.entities[].particles.behaviors[].color.color.keysref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[2] array yes none none Missing source description
# $.entities[].particles.behaviors[].color.color.keys[]ref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.color.keys[].valueref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.color.keys[].value.rref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.color.keys[].value.gref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.color.keys[].value.bref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.color.keys[].posref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.alpharef:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.alpha.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[2] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.entities[].particles.behaviors[].color.alpha.subTyperef:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[2] const "Number" yes none {"const":"Number"} Missing source description
# $.entities[].particles.behaviors[].color.alpha.keysref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[2] array yes none none Missing source description
# $.entities[].particles.behaviors[].color.alpha.keys[]ref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.alpha.keys[].valueref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.alpha.keys[].posref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].colorref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] const "RandomColorBetweenGradient" yes none {"const":"RandomColorBetweenGradient"} Missing source description
# $.entities[].particles.behaviors[].color.gradient1ref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.gradient1.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] const "Gradient" yes none {"const":"Gradient"} Missing source description
# $.entities[].particles.behaviors[].color.gradient1.colorref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.gradient1.color.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.entities[].particles.behaviors[].color.gradient1.color.subTyperef:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] const "Color" yes none {"const":"Color"} Missing source description
# $.entities[].particles.behaviors[].color.gradient1.color.keysref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] array yes none none Missing source description
# $.entities[].particles.behaviors[].color.gradient1.color.keys[]ref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.gradient1.color.keys[].valueref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.gradient1.color.keys[].value.rref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.gradient1.color.keys[].value.gref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.gradient1.color.keys[].value.bref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.gradient1.color.keys[].posref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.gradient1.alpharef:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.gradient1.alpha.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.entities[].particles.behaviors[].color.gradient1.alpha.subTyperef:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] const "Number" yes none {"const":"Number"} Missing source description
# $.entities[].particles.behaviors[].color.gradient1.alpha.keysref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] array yes none none Missing source description
# $.entities[].particles.behaviors[].color.gradient1.alpha.keys[]ref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.gradient1.alpha.keys[].valueref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.gradient1.alpha.keys[].posref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.gradient2ref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.gradient2.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] const "Gradient" yes none {"const":"Gradient"} Missing source description
# $.entities[].particles.behaviors[].color.gradient2.colorref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.gradient2.color.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.entities[].particles.behaviors[].color.gradient2.color.subTyperef:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] const "Color" yes none {"const":"Color"} Missing source description
# $.entities[].particles.behaviors[].color.gradient2.color.keysref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] array yes none none Missing source description
# $.entities[].particles.behaviors[].color.gradient2.color.keys[]ref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.gradient2.color.keys[].valueref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.gradient2.color.keys[].value.rref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.gradient2.color.keys[].value.gref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.gradient2.color.keys[].value.bref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.gradient2.color.keys[].posref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.gradient2.alpharef:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.gradient2.alpha.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.entities[].particles.behaviors[].color.gradient2.alpha.subTyperef:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] const "Number" yes none {"const":"Number"} Missing source description
# $.entities[].particles.behaviors[].color.gradient2.alpha.keysref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] array yes none none Missing source description
# $.entities[].particles.behaviors[].color.gradient2.alpha.keys[]ref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.gradient2.alpha.keys[].valueref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.gradient2.alpha.keys[].posref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] number yes none none Missing source description
# $.entities[].particles.behaviors[]ref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].typeref:#/$defs/__schema0 anyOf[0] oneOf[2] const "SizeOverLife" yes none {"const":"SizeOverLife"} Missing source description
# $.entities[].particles.behaviors[].sizeref:#/$defs/__schema0 anyOf[0] oneOf[2] oneOf (3) yes none none Size curve over particle lifetime
# $.entities[].particles.behaviors[].sizeref:#/$defs/__schema0 anyOf[0] oneOf[2] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].size.typeref:#/$defs/__schema0 anyOf[0] oneOf[2] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.behaviors[].size.valueref:#/$defs/__schema0 anyOf[0] oneOf[2] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].sizeref:#/$defs/__schema0 anyOf[0] oneOf[2] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].size.typeref:#/$defs/__schema0 anyOf[0] oneOf[2] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.behaviors[].size.aref:#/$defs/__schema0 anyOf[0] oneOf[2] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].size.bref:#/$defs/__schema0 anyOf[0] oneOf[2] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].sizeref:#/$defs/__schema0 anyOf[0] oneOf[2] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].size.typeref:#/$defs/__schema0 anyOf[0] oneOf[2] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.behaviors[].size.functionsref:#/$defs/__schema0 anyOf[0] oneOf[2] oneOf[2] array yes none none Missing source description
# $.entities[].particles.behaviors[].size.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[2] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].size.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[2] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].size.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[2] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].size.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[2] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].size.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[2] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].size.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[2] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].size.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[2] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[]ref:#/$defs/__schema0 anyOf[0] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].typeref:#/$defs/__schema0 anyOf[0] oneOf[3] const "SpeedOverLife" yes none {"const":"SpeedOverLife"} Missing source description
# $.entities[].particles.behaviors[].speedref:#/$defs/__schema0 anyOf[0] oneOf[3] oneOf (3) yes none none Speed multiplier curve over lifetime
# $.entities[].particles.behaviors[].speedref:#/$defs/__schema0 anyOf[0] oneOf[3] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].speed.typeref:#/$defs/__schema0 anyOf[0] oneOf[3] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.behaviors[].speed.valueref:#/$defs/__schema0 anyOf[0] oneOf[3] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].speedref:#/$defs/__schema0 anyOf[0] oneOf[3] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].speed.typeref:#/$defs/__schema0 anyOf[0] oneOf[3] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.behaviors[].speed.aref:#/$defs/__schema0 anyOf[0] oneOf[3] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].speed.bref:#/$defs/__schema0 anyOf[0] oneOf[3] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].speedref:#/$defs/__schema0 anyOf[0] oneOf[3] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].speed.typeref:#/$defs/__schema0 anyOf[0] oneOf[3] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.behaviors[].speed.functionsref:#/$defs/__schema0 anyOf[0] oneOf[3] oneOf[2] array yes none none Missing source description
# $.entities[].particles.behaviors[].speed.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[3] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].speed.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[3] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].speed.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[3] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].speed.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[3] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].speed.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[3] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].speed.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[3] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].speed.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[3] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[]ref:#/$defs/__schema0 anyOf[0] oneOf[4] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].typeref:#/$defs/__schema0 anyOf[0] oneOf[4] const "RotationOverLife" yes none {"const":"RotationOverLife"} Missing source description
# $.entities[].particles.behaviors[].angularVelocityref:#/$defs/__schema0 anyOf[0] oneOf[4] oneOf (3) yes none none Angular velocity in radians/sec
# $.entities[].particles.behaviors[].angularVelocityref:#/$defs/__schema0 anyOf[0] oneOf[4] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].angularVelocity.typeref:#/$defs/__schema0 anyOf[0] oneOf[4] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.behaviors[].angularVelocity.valueref:#/$defs/__schema0 anyOf[0] oneOf[4] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].angularVelocityref:#/$defs/__schema0 anyOf[0] oneOf[4] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].angularVelocity.typeref:#/$defs/__schema0 anyOf[0] oneOf[4] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.behaviors[].angularVelocity.aref:#/$defs/__schema0 anyOf[0] oneOf[4] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].angularVelocity.bref:#/$defs/__schema0 anyOf[0] oneOf[4] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].angularVelocityref:#/$defs/__schema0 anyOf[0] oneOf[4] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].angularVelocity.typeref:#/$defs/__schema0 anyOf[0] oneOf[4] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.behaviors[].angularVelocity.functionsref:#/$defs/__schema0 anyOf[0] oneOf[4] oneOf[2] array yes none none Missing source description
# $.entities[].particles.behaviors[].angularVelocity.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[4] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].angularVelocity.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[4] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].angularVelocity.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[4] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].angularVelocity.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[4] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].angularVelocity.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[4] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].angularVelocity.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[4] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].angularVelocity.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[4] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[]ref:#/$defs/__schema0 anyOf[0] oneOf[5] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].typeref:#/$defs/__schema0 anyOf[0] oneOf[5] const "ForceOverLife" yes none {"const":"ForceOverLife"} Missing source description
# $.entities[].particles.behaviors[].xref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf (3) yes none none Force along X axis over lifetime
# $.entities[].particles.behaviors[].xref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].x.typeref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.behaviors[].x.valueref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].xref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].x.typeref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.behaviors[].x.aref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].x.bref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].xref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].x.typeref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.behaviors[].x.functionsref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] array yes none none Missing source description
# $.entities[].particles.behaviors[].x.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].x.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].x.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].x.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].x.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].x.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].x.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].yref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf (3) yes none none Force along Y axis over lifetime
# $.entities[].particles.behaviors[].yref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].y.typeref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.behaviors[].y.valueref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].yref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].y.typeref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.behaviors[].y.aref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].y.bref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].yref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].y.typeref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.behaviors[].y.functionsref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] array yes none none Missing source description
# $.entities[].particles.behaviors[].y.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].y.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].y.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].y.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].y.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].y.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].y.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].zref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf (3) yes none none Force along Z axis over lifetime
# $.entities[].particles.behaviors[].zref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].z.typeref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.behaviors[].z.valueref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].zref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].z.typeref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.behaviors[].z.aref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].z.bref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].zref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].z.typeref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.behaviors[].z.functionsref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] array yes none none Missing source description
# $.entities[].particles.behaviors[].z.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].z.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].z.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].z.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].z.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].z.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].z.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[]ref:#/$defs/__schema0 anyOf[0] oneOf[6] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].typeref:#/$defs/__schema0 anyOf[0] oneOf[6] const "OrbitOverLife" yes none {"const":"OrbitOverLife"} Missing source description
# $.entities[].particles.behaviors[].orbitSpeedref:#/$defs/__schema0 anyOf[0] oneOf[6] oneOf (3) yes none none Orbit speed over lifetime
# $.entities[].particles.behaviors[].orbitSpeedref:#/$defs/__schema0 anyOf[0] oneOf[6] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].orbitSpeed.typeref:#/$defs/__schema0 anyOf[0] oneOf[6] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.behaviors[].orbitSpeed.valueref:#/$defs/__schema0 anyOf[0] oneOf[6] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].orbitSpeedref:#/$defs/__schema0 anyOf[0] oneOf[6] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].orbitSpeed.typeref:#/$defs/__schema0 anyOf[0] oneOf[6] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.behaviors[].orbitSpeed.aref:#/$defs/__schema0 anyOf[0] oneOf[6] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].orbitSpeed.bref:#/$defs/__schema0 anyOf[0] oneOf[6] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].orbitSpeedref:#/$defs/__schema0 anyOf[0] oneOf[6] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].orbitSpeed.typeref:#/$defs/__schema0 anyOf[0] oneOf[6] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.behaviors[].orbitSpeed.functionsref:#/$defs/__schema0 anyOf[0] oneOf[6] oneOf[2] array yes none none Missing source description
# $.entities[].particles.behaviors[].orbitSpeed.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[6] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].orbitSpeed.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[6] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].orbitSpeed.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[6] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].orbitSpeed.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[6] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].orbitSpeed.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[6] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].orbitSpeed.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[6] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].orbitSpeed.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[6] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].axisref:#/$defs/__schema0 anyOf[0] oneOf[6] array no none none Orbit axis. Defaults to [0, 1, 0]
# $.entities[].particles.behaviors[].axis[0]ref:#/$defs/__schema0 anyOf[0] oneOf[6] number yes none none Missing source description
# $.entities[].particles.behaviors[].axis[1]ref:#/$defs/__schema0 anyOf[0] oneOf[6] number yes none none Missing source description
# $.entities[].particles.behaviors[].axis[2]ref:#/$defs/__schema0 anyOf[0] oneOf[6] number yes none none Missing source description
# $.entities[].particles.behaviors[]ref:#/$defs/__schema0 anyOf[0] oneOf[7] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].typeref:#/$defs/__schema0 anyOf[0] oneOf[7] const "Noise" yes none {"const":"Noise"} Missing source description
# $.entities[].particles.behaviors[].frequencyref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf (3) yes none none Noise frequency
# $.entities[].particles.behaviors[].frequencyref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].frequency.typeref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.behaviors[].frequency.valueref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].frequencyref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].frequency.typeref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.behaviors[].frequency.aref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].frequency.bref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].frequencyref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].frequency.typeref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.behaviors[].frequency.functionsref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] array yes none none Missing source description
# $.entities[].particles.behaviors[].frequency.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].frequency.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].frequency.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].frequency.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].frequency.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].frequency.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].frequency.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].powerref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf (3) yes none none Noise amplitude
# $.entities[].particles.behaviors[].powerref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].power.typeref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.behaviors[].power.valueref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].powerref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].power.typeref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.behaviors[].power.aref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].power.bref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].powerref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].power.typeref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.behaviors[].power.functionsref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] array yes none none Missing source description
# $.entities[].particles.behaviors[].power.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].power.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].power.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].power.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].power.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].power.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].power.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].positionAmountref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf (3) no none none Position displacement amount
# $.entities[].particles.behaviors[].positionAmountref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].positionAmount.typeref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.behaviors[].positionAmount.valueref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].positionAmountref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].positionAmount.typeref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.behaviors[].positionAmount.aref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].positionAmount.bref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].positionAmountref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].positionAmount.typeref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.behaviors[].positionAmount.functionsref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] array yes none none Missing source description
# $.entities[].particles.behaviors[].positionAmount.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].positionAmount.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].positionAmount.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].positionAmount.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].positionAmount.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].positionAmount.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].positionAmount.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].rotationAmountref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf (3) no none none Rotation displacement amount
# $.entities[].particles.behaviors[].rotationAmountref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].rotationAmount.typeref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.behaviors[].rotationAmount.valueref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].rotationAmountref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].rotationAmount.typeref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.behaviors[].rotationAmount.aref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].rotationAmount.bref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].rotationAmountref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].rotationAmount.typeref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.behaviors[].rotationAmount.functionsref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] array yes none none Missing source description
# $.entities[].particles.behaviors[].rotationAmount.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].rotationAmount.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].rotationAmount.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].rotationAmount.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].rotationAmount.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].rotationAmount.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].rotationAmount.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[]ref:#/$defs/__schema0 anyOf[0] oneOf[8] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].typeref:#/$defs/__schema0 anyOf[0] oneOf[8] const "TurbulenceField" yes none {"const":"TurbulenceField"} Missing source description
# $.entities[].particles.behaviors[].scaleref:#/$defs/__schema0 anyOf[0] oneOf[8] array yes none none Turbulence field scale
# $.entities[].particles.behaviors[].scale[0]ref:#/$defs/__schema0 anyOf[0] oneOf[8] number yes none none Missing source description
# $.entities[].particles.behaviors[].scale[1]ref:#/$defs/__schema0 anyOf[0] oneOf[8] number yes none none Missing source description
# $.entities[].particles.behaviors[].scale[2]ref:#/$defs/__schema0 anyOf[0] oneOf[8] number yes none none Missing source description
# $.entities[].particles.behaviors[].octavesref:#/$defs/__schema0 anyOf[0] oneOf[8] integer yes none {"minimum":-9007199254740991,"maximum":9007199254740991} Noise octave count
# $.entities[].particles.behaviors[].velocityMultiplierref:#/$defs/__schema0 anyOf[0] oneOf[8] array yes none none Velocity multiplier per axis
# $.entities[].particles.behaviors[].velocityMultiplier[0]ref:#/$defs/__schema0 anyOf[0] oneOf[8] number yes none none Missing source description
# $.entities[].particles.behaviors[].velocityMultiplier[1]ref:#/$defs/__schema0 anyOf[0] oneOf[8] number yes none none Missing source description
# $.entities[].particles.behaviors[].velocityMultiplier[2]ref:#/$defs/__schema0 anyOf[0] oneOf[8] number yes none none Missing source description
# $.entities[].particles.behaviors[].timeScaleref:#/$defs/__schema0 anyOf[0] oneOf[8] array yes none none Time scale per axis
# $.entities[].particles.behaviors[].timeScale[0]ref:#/$defs/__schema0 anyOf[0] oneOf[8] number yes none none Missing source description
# $.entities[].particles.behaviors[].timeScale[1]ref:#/$defs/__schema0 anyOf[0] oneOf[8] number yes none none Missing source description
# $.entities[].particles.behaviors[].timeScale[2]ref:#/$defs/__schema0 anyOf[0] oneOf[8] number yes none none Missing source description
# $.entities[].particles.behaviors[]ref:#/$defs/__schema0 anyOf[0] oneOf[9] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].typeref:#/$defs/__schema0 anyOf[0] oneOf[9] const "FrameOverLife" yes none {"const":"FrameOverLife"} Missing source description
# $.entities[].particles.behaviors[].frameref:#/$defs/__schema0 anyOf[0] oneOf[9] oneOf (3) yes none none Sprite sheet frame index over lifetime
# $.entities[].particles.behaviors[].frameref:#/$defs/__schema0 anyOf[0] oneOf[9] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].frame.typeref:#/$defs/__schema0 anyOf[0] oneOf[9] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.behaviors[].frame.valueref:#/$defs/__schema0 anyOf[0] oneOf[9] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].frameref:#/$defs/__schema0 anyOf[0] oneOf[9] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].frame.typeref:#/$defs/__schema0 anyOf[0] oneOf[9] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.behaviors[].frame.aref:#/$defs/__schema0 anyOf[0] oneOf[9] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].frame.bref:#/$defs/__schema0 anyOf[0] oneOf[9] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].frameref:#/$defs/__schema0 anyOf[0] oneOf[9] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].frame.typeref:#/$defs/__schema0 anyOf[0] oneOf[9] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.behaviors[].frame.functionsref:#/$defs/__schema0 anyOf[0] oneOf[9] oneOf[2] array yes none none Missing source description
# $.entities[].particles.behaviors[].frame.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[9] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].frame.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[9] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].frame.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[9] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].frame.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[9] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].frame.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[9] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].frame.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[9] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].frame.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[9] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[]ref:#/$defs/__schema0 anyOf[0] oneOf[10] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].typeref:#/$defs/__schema0 anyOf[0] oneOf[10] const "LimitSpeedOverLife" yes none {"const":"LimitSpeedOverLife"} Missing source description
# $.entities[].particles.behaviors[].speedref:#/$defs/__schema0 anyOf[0] oneOf[10] oneOf (3) yes none none Maximum speed over lifetime
# $.entities[].particles.behaviors[].speedref:#/$defs/__schema0 anyOf[0] oneOf[10] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].speed.typeref:#/$defs/__schema0 anyOf[0] oneOf[10] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.behaviors[].speed.valueref:#/$defs/__schema0 anyOf[0] oneOf[10] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].speedref:#/$defs/__schema0 anyOf[0] oneOf[10] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].speed.typeref:#/$defs/__schema0 anyOf[0] oneOf[10] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.behaviors[].speed.aref:#/$defs/__schema0 anyOf[0] oneOf[10] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].speed.bref:#/$defs/__schema0 anyOf[0] oneOf[10] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].speedref:#/$defs/__schema0 anyOf[0] oneOf[10] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].speed.typeref:#/$defs/__schema0 anyOf[0] oneOf[10] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.behaviors[].speed.functionsref:#/$defs/__schema0 anyOf[0] oneOf[10] oneOf[2] array yes none none Missing source description
# $.entities[].particles.behaviors[].speed.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[10] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].speed.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[10] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].speed.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[10] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].speed.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[10] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].speed.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[10] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].speed.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[10] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].speed.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[10] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].dampenref:#/$defs/__schema0 anyOf[0] oneOf[10] number yes none none Damping factor when speed exceeds limit (0–1)
# $.entities[].particles.behaviors[]ref:#/$defs/__schema0 anyOf[0] oneOf[11] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].typeref:#/$defs/__schema0 anyOf[0] oneOf[11] const "ChangeEmitDirection" yes none {"const":"ChangeEmitDirection"} Missing source description
# $.entities[].particles.behaviors[].angleref:#/$defs/__schema0 anyOf[0] oneOf[11] oneOf (3) yes none none Angle deviation from original emit direction
# $.entities[].particles.behaviors[].angleref:#/$defs/__schema0 anyOf[0] oneOf[11] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].angle.typeref:#/$defs/__schema0 anyOf[0] oneOf[11] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.behaviors[].angle.valueref:#/$defs/__schema0 anyOf[0] oneOf[11] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].angleref:#/$defs/__schema0 anyOf[0] oneOf[11] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].angle.typeref:#/$defs/__schema0 anyOf[0] oneOf[11] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.behaviors[].angle.aref:#/$defs/__schema0 anyOf[0] oneOf[11] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].angle.bref:#/$defs/__schema0 anyOf[0] oneOf[11] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].angleref:#/$defs/__schema0 anyOf[0] oneOf[11] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].angle.typeref:#/$defs/__schema0 anyOf[0] oneOf[11] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.behaviors[].angle.functionsref:#/$defs/__schema0 anyOf[0] oneOf[11] oneOf[2] array yes none none Missing source description
# $.entities[].particles.behaviors[].angle.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[11] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].angle.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[11] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].angle.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[11] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].angle.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[11] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].angle.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[11] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].angle.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[11] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].angle.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[11] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[]ref:#/$defs/__schema0 anyOf[0] oneOf[12] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].typeref:#/$defs/__schema0 anyOf[0] oneOf[12] const "GravityForce" yes none {"const":"GravityForce"} Missing source description
# $.entities[].particles.behaviors[].centerref:#/$defs/__schema0 anyOf[0] oneOf[12] array yes none none Gravity center point
# $.entities[].particles.behaviors[].center[0]ref:#/$defs/__schema0 anyOf[0] oneOf[12] number yes none none Missing source description
# $.entities[].particles.behaviors[].center[1]ref:#/$defs/__schema0 anyOf[0] oneOf[12] number yes none none Missing source description
# $.entities[].particles.behaviors[].center[2]ref:#/$defs/__schema0 anyOf[0] oneOf[12] number yes none none Missing source description
# $.entities[].particles.behaviors[].magnituderef:#/$defs/__schema0 anyOf[0] oneOf[12] number yes none none Gravity force strength
# $.entities[].particles.behaviors[]ref:#/$defs/__schema0 anyOf[0] oneOf[13] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].typeref:#/$defs/__schema0 anyOf[0] oneOf[13] const "WidthOverLength" yes none {"const":"WidthOverLength"} Missing source description
# $.entities[].particles.behaviors[].widthref:#/$defs/__schema0 anyOf[0] oneOf[13] oneOf (3) yes none none Trail width over trail length
# $.entities[].particles.behaviors[].widthref:#/$defs/__schema0 anyOf[0] oneOf[13] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].width.typeref:#/$defs/__schema0 anyOf[0] oneOf[13] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.behaviors[].width.valueref:#/$defs/__schema0 anyOf[0] oneOf[13] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].widthref:#/$defs/__schema0 anyOf[0] oneOf[13] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].width.typeref:#/$defs/__schema0 anyOf[0] oneOf[13] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.behaviors[].width.aref:#/$defs/__schema0 anyOf[0] oneOf[13] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].width.bref:#/$defs/__schema0 anyOf[0] oneOf[13] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].widthref:#/$defs/__schema0 anyOf[0] oneOf[13] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].width.typeref:#/$defs/__schema0 anyOf[0] oneOf[13] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.behaviors[].width.functionsref:#/$defs/__schema0 anyOf[0] oneOf[13] oneOf[2] array yes none none Missing source description
# $.entities[].particles.behaviors[].width.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[13] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].width.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[13] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].width.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[13] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].width.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[13] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].width.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[13] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].width.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[13] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].width.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[13] oneOf[2] number yes none none Missing source description
# $.entities[].particles.renderModeref:#/$defs/__schema0 anyOf[0] enum (6) no none {"enum":["billboard","stretchedBillboard","mesh","trail","horizontalBillboard","verticalBillboard"]} How particles are rendered (billboard, trail, mesh, etc.)
# $.entities[].particles.worldSpaceref:#/$defs/__schema0 anyOf[0] boolean no none none Simulate particles in world space instead of local space
# $.entities[].particles.renderOrderref:#/$defs/__schema0 anyOf[0] number no none none Render order for sorting (higher = rendered later)
# $.entities[].particles.uTileCountref:#/$defs/__schema0 anyOf[0] integer no none {"minimum":-9007199254740991,"maximum":9007199254740991} Horizontal tile count in sprite sheet
# $.entities[].particles.vTileCountref:#/$defs/__schema0 anyOf[0] integer no none {"minimum":-9007199254740991,"maximum":9007199254740991} Vertical tile count in sprite sheet
# $.entities[].particles.blendTilesref:#/$defs/__schema0 anyOf[0] boolean no none none Blend between sprite sheet tiles for smooth animation
# $.entities[].particles.softParticlesref:#/$defs/__schema0 anyOf[0] boolean no none none Enable soft particle depth fading
# $.entities[].particles.softFarFaderef:#/$defs/__schema0 anyOf[0] number no none none Far fade distance for soft particles
# $.entities[].particles.softNearFaderef:#/$defs/__schema0 anyOf[0] number no none none Near fade distance for soft particles
# $.entities[].particles.materialref:#/$defs/__schema0 anyOf[0] object yes none {"additionalProperties":false} Particle material settings
# $.entities[].particles.material.typeref:#/$defs/__schema0 anyOf[0] enum (2) no none {"enum":["basic","standard"]} Particle material shading model
# $.entities[].particles.material.colorref:#/$defs/__schema0 anyOf[0] string no none none Particle color as CSS hex string
# $.entities[].particles.material.mapref:#/$defs/__schema0 anyOf[0] string no none none Path to particle sprite texture
# $.entities[].particles.material.blendingref:#/$defs/__schema0 anyOf[0] enum (2) no none {"enum":["normal","additive"]} Blending mode (additive for glowing/fire effects)
# $.entities[].particles.material.transparentref:#/$defs/__schema0 anyOf[0] boolean no none none Enable transparency
# $.entities[].particles.material.depthWriteref:#/$defs/__schema0 anyOf[0] boolean no none none Write to depth buffer (disable for additive effects)
# $.entities[].particles.material.sideref:#/$defs/__schema0 anyOf[0] enum (3) no none {"enum":["front","back","double"]} Which face sides to render
# $.entities[].splineref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":false} Spline path
# $.entities[].spline.curveTyperef:#/$defs/__schema0 anyOf[0] enum (3) yes none {"enum":["centripetal","chordal","catmullrom"]} CatmullRomCurve3 parameterization type. Matches Three.js curveType parameter
# $.entities[].spline.pointsref:#/$defs/__schema0 anyOf[0] array yes none {"minItems":2} Control point positions in local space
# $.entities[].spline.points[]ref:#/$defs/__schema0 anyOf[0] array yes none none 3D vector as [x, y, z]
# $.entities[].spline.points[][0]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.entities[].spline.points[][1]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.entities[].spline.points[][2]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.entities[].spline.closedref:#/$defs/__schema0 anyOf[0] boolean no none none Whether the spline forms a closed loop
# $.entities[].spline.tensionref:#/$defs/__schema0 anyOf[0] number no none none Curve tension (default 0.5). Only used when curveType is catmullrom; ignored for centripetal and chordal
# $.entities[].spline.resolutionref:#/$defs/__schema0 anyOf[0] number no none none Number of line segments for rendering the curve
# $.entities[].jointsref:#/$defs/__schema0 anyOf[0] array no none none Physics joints connecting to other bodies
# $.entities[].joints[]ref:#/$defs/__schema0 anyOf[0] object yes none {"additionalProperties":false} Physics joint constraint between two bodies
# $.entities[].joints[].typeref:#/$defs/__schema0 anyOf[0] enum (5) yes none {"enum":["fixed","revolute","prismatic","spherical","spring"]} Joint constraint type
# $.entities[].joints[].targetref:#/$defs/__schema0 anyOf[0] string yes none none Entity ID of the body this joint connects to
# $.entities[].joints[].anchorref:#/$defs/__schema0 anyOf[0] array no none none Local anchor point on this body
# $.entities[].joints[].anchor[0]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.entities[].joints[].anchor[1]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.entities[].joints[].anchor[2]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.entities[].joints[].targetAnchorref:#/$defs/__schema0 anyOf[0] array no none none Local anchor point on the target body
# $.entities[].joints[].targetAnchor[0]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.entities[].joints[].targetAnchor[1]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.entities[].joints[].targetAnchor[2]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.entities[].joints[].axisref:#/$defs/__schema0 anyOf[0] array no none none Rotation/slide axis for revolute and prismatic joints
# $.entities[].joints[].axis[0]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.entities[].joints[].axis[1]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.entities[].joints[].axis[2]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.entities[].joints[].limitsref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":false} Angle or distance limits for revolute/prismatic joints
# $.entities[].joints[].limits.minref:#/$defs/__schema0 anyOf[0] number yes none none Minimum angle (degrees) or distance
# $.entities[].joints[].limits.maxref:#/$defs/__schema0 anyOf[0] number yes none none Maximum angle (degrees) or distance
# $.entities[].joints[].stiffnessref:#/$defs/__schema0 anyOf[0] number no none none Spring stiffness coefficient
# $.entities[].joints[].dampingref:#/$defs/__schema0 anyOf[0] number no none none Spring damping coefficient
# $.entities[].joints[].restLengthref:#/$defs/__schema0 anyOf[0] number no none none Spring rest length
# $.entities[].childrenref:#/$defs/__schema0 anyOf[0] array no none none Child entities
# $.entities[].children[]ref:#/$defs/__schema0 anyOf[0] ref #/$defs/__schema0 yes none none Missing source description
# $.entities[]ref:#/$defs/__schema0 anyOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].idref:#/$defs/__schema0 anyOf[1] string no none none Unique entity ID. Auto-generated if omitted
# $.entities[].nameref:#/$defs/__schema0 anyOf[1] string yes none none Human-readable entity name (shown in hierarchy panel)
# $.entities[].visibleref:#/$defs/__schema0 anyOf[1] boolean no none none Whether the entity and its children are rendered
# $.entities[].lockedref:#/$defs/__schema0 anyOf[1] boolean no none none Prevent selection and editing in the scene editor
# $.entities[].tagsref:#/$defs/__schema0 anyOf[1] array no none none Arbitrary string tags for runtime queries
# $.entities[].tags[]ref:#/$defs/__schema0 anyOf[1] string yes none none Missing source description
# $.entities[].prefabref:#/$defs/__schema0 anyOf[1] string yes none none Path to .prefab.json file to instantiate
# $.entities[].materialRefref:#/$defs/__schema0 anyOf[1] string no none none Path to shared .mat.json material asset. Mutually exclusive with inline material
# $.entities[].transformref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Local transform relative to parent
# $.entities[].transform.positionref:#/$defs/__schema0 anyOf[1] array no none none World-space position [x, y, z]
# $.entities[].transform.position[0]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.entities[].transform.position[1]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.entities[].transform.position[2]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.entities[].transform.rotationref:#/$defs/__schema0 anyOf[1] array no none none Rotation quaternion [x, y, z, w]
# $.entities[].transform.rotation[0]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.entities[].transform.rotation[1]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.entities[].transform.rotation[2]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.entities[].transform.rotation[3]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.entities[].transform.scaleref:#/$defs/__schema0 anyOf[1] array no none none Scale factor per axis [x, y, z]. Defaults to [1, 1, 1]
# $.entities[].transform.scale[0]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.entities[].transform.scale[1]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.entities[].transform.scale[2]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.entities[].boneAttachmentref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Animated bone/socket attachment. Use transform for the local position, rotation, and scale offset
# $.entities[].boneAttachment.targetref:#/$defs/__schema0 anyOf[1] string yes none none Entity ID whose animated skeleton owns the target bone
# $.entities[].boneAttachment.boneref:#/$defs/__schema0 anyOf[1] string yes none none Exact name of the target bone or socket Object3D
# $.entities[].pivotref:#/$defs/__schema0 anyOf[1] array no none none Local-space pivot point for rotation/scale. [0,0,0] = geometry center
# $.entities[].pivot[0]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.entities[].pivot[1]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.entities[].pivot[2]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.entities[].navigationref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Navigation mesh role for this entity
# $.entities[].navigation.roleref:#/$defs/__schema0 anyOf[1] enum (2) yes none {"enum":["walkable","obstacle"]} Whether this entity is walkable surface or an obstacle
# $.entities[].renderref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Per-entity render overrides (e.g. autoBatch:false to keep a custom-shader entity out of batching). Omit to inherit from the scene/engine default.
# $.entities[].render.autoBatchref:#/$defs/__schema0 anyOf[1] boolean no none none Automatically batch entities sharing geometry+material into one draw call (InstancedMesh/BatchedMesh) while keeping each Object3D as the handle. The headline perf win; opt out per-entity for custom-shader/skinned meshes.
# $.entities[].render.frustumCullingref:#/$defs/__schema0 anyOf[1] boolean no none none Per-instance frustum culling for batched content.
# $.entities[].render.lodref:#/$defs/__schema0 anyOf[1] boolean no none none Distance-based geometry swap (LOD) for eligible entities.
# $.entities[].render.shadowsref:#/$defs/__schema0 anyOf[1] boolean no none none Enable the shadow map. Per-entity cast/receive still applies.
# $.entities[].componentsref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"string"},{"type":"boolean"}]},{"type":"array","items":{"type":"number"}},{"type":"array","items":{"type":"string"}},{"type":"array","items":{"type":"boolean"}}]}},"propertyNames":{"type":"string"}} User-defined ECS component data (validated against component registry)
# $.entities[].components{key}ref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"string"},{"type":"boolean"}]},{"type":"array","items":{"type":"number"}},{"type":"array","items":{"type":"string"}},{"type":"array","items":{"type":"boolean"}}]},"propertyNames":{"type":"string"}} Missing source description
# $.entities[].components{key}{key}ref:#/$defs/__schema0 anyOf[1] anyOf (4) no none none Missing source description
# $.entities[].components{key}{key}ref:#/$defs/__schema0 anyOf[1] anyOf[0] anyOf (3) no none none Missing source description
# $.entities[].components{key}{key}ref:#/$defs/__schema0 anyOf[1] anyOf[0] anyOf[0] number no none none Missing source description
# $.entities[].components{key}{key}ref:#/$defs/__schema0 anyOf[1] anyOf[0] anyOf[1] string no none none Missing source description
# $.entities[].components{key}{key}ref:#/$defs/__schema0 anyOf[1] anyOf[0] anyOf[2] boolean no none none Missing source description
# $.entities[].components{key}{key}ref:#/$defs/__schema0 anyOf[1] anyOf[1] array no none none Missing source description
# $.entities[].components{key}{key}[]ref:#/$defs/__schema0 anyOf[1] anyOf[1] number yes none none Missing source description
# $.entities[].components{key}{key}ref:#/$defs/__schema0 anyOf[1] anyOf[2] array no none none Missing source description
# $.entities[].components{key}{key}[]ref:#/$defs/__schema0 anyOf[1] anyOf[2] string yes none none Missing source description
# $.entities[].components{key}{key}ref:#/$defs/__schema0 anyOf[1] anyOf[3] array no none none Missing source description
# $.entities[].components{key}{key}[]ref:#/$defs/__schema0 anyOf[1] anyOf[3] boolean yes none none Missing source description
# $.entities[].meshref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Mesh overrides merged with prefab
# $.entities[].mesh.typeref:#/$defs/__schema0 anyOf[1] enum (7) no none {"enum":["box","sphere","plane","cylinder","capsule","gltf","splat"]} Renderable type: a built-in mesh primitive, "gltf" for an external 3D model, or "splat" for a native Gaussian-splat asset
# $.entities[].mesh.argsref:#/$defs/__schema0 anyOf[1] array no none none Geometry constructor args — box: [w,h,d], sphere: [radius], cylinder: [rTop,rBot,h], capsule: [radius,length], plane: [w,h,widthSegments,heightSegments]
# $.entities[].mesh.args[]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.entities[].mesh.srcref:#/$defs/__schema0 anyOf[1] string no none none Path to the external render asset. Required for "gltf" (GLTF/GLB) and "splat" (SPZ)
# $.entities[].mesh.noderef:#/$defs/__schema0 anyOf[1] string no none none Name (or path) of a single node inside the referenced glTF (resolved via getObjectByName) to instantiate as this entity's geometry, instead of the whole file. The geometry stays SHARED from the cached glTF — nothing is copied out. Only meaningful with type: "gltf". CONSTRAINT: a skinned/animated node cannot be lifted out of its armature — if the named node is a SkinnedMesh (or contains one), resolving it throws (degrade loudly, not silently).
# $.entities[].mesh.instancesref:#/$defs/__schema0 anyOf[1] string no none none Path to an instance-transform asset (.instances.json: an array of [posX,posY,posZ, quatX,quatY,quatZ,quatW, scaleX,scaleY,scaleZ] tuples). Renders one THREE.InstancedMesh (one draw call). Bulk transform data is referenced as an asset, never inlined — keeps vscn thin.
# $.entities[].mesh.lodref:#/$defs/__schema0 anyOf[1] array no none none Per-entity Level-of-Detail: distance-keyed glTF sub-nodes swapped by camera distance (THREE.LOD). gltf-only. Gated by the environment.rendering.lod master toggle — when off, only the closest level renders. Cannot combine with node/instances.
# $.entities[].mesh.lod[]ref:#/$defs/__schema0 anyOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].mesh.lod[].distanceref:#/$defs/__schema0 anyOf[1] number yes none none Camera distance in world units at/beyond which this level shows (THREE.LOD threshold). Use 0 for the closest/highest-detail level.
# $.entities[].mesh.lod[].noderef:#/$defs/__schema0 anyOf[1] string yes none none Name of a node inside the referenced glTF (mesh.src) to show at this distance — resolved via getObjectByName, geometry shared (F4-style). A skinned node throws (atomic-subtree rule).
# $.entities[].materialref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Material overrides merged with prefab
# $.entities[].material.typeref:#/$defs/__schema0 anyOf[1] enum (4) no none {"enum":["standard","physical","basic","toon"]} Material shading model
# $.entities[].material.colorref:#/$defs/__schema0 anyOf[1] string no none none Base color as CSS hex string (e.g. "#ff0000")
# $.entities[].material.metalnessref:#/$defs/__schema0 anyOf[1] number no none none Metalness factor 0–1 (standard/physical only)
# $.entities[].material.roughnessref:#/$defs/__schema0 anyOf[1] number no none none Roughness factor 0–1 (standard/physical only)
# $.entities[].material.mapref:#/$defs/__schema0 anyOf[1] string no none none Path to albedo/diffuse texture image
# $.entities[].material.normalMapref:#/$defs/__schema0 anyOf[1] string no none none Path to normal map texture image
# $.entities[].material.emissiveref:#/$defs/__schema0 anyOf[1] string no none none Emissive color as CSS hex string
# $.entities[].material.emissiveIntensityref:#/$defs/__schema0 anyOf[1] number no none none Emissive light intensity multiplier
# $.entities[].material.emissiveMapref:#/$defs/__schema0 anyOf[1] string no none none Path to emissive map texture image
# $.entities[].material.aoMapref:#/$defs/__schema0 anyOf[1] string no none none Path to ambient occlusion map texture image
# $.entities[].material.lightMapref:#/$defs/__schema0 anyOf[1] string no none none Path to a baked lightmap texture (uses the mesh's second UV set). Applies the pre-baked GI/shadow result on top of the material.
# $.entities[].material.lightMapIntensityref:#/$defs/__schema0 anyOf[1] number no none none Lightmap intensity multiplier (default 1).
# $.entities[].material.roughnessMapref:#/$defs/__schema0 anyOf[1] string no none none Path to roughness map texture image
# $.entities[].material.metalnessMapref:#/$defs/__schema0 anyOf[1] string no none none Path to metalness map texture image
# $.entities[].material.opacityref:#/$defs/__schema0 anyOf[1] number no none none Opacity 0–1. Set transparent: true to enable
# $.entities[].material.transparentref:#/$defs/__schema0 anyOf[1] boolean no none none Enable alpha blending for this material
# $.entities[].material.sideref:#/$defs/__schema0 anyOf[1] enum (3) no none {"enum":["front","back","double"]} Which face sides to render
# $.entities[].material.flatShadingref:#/$defs/__schema0 anyOf[1] boolean no none none Use flat (faceted) shading instead of smooth
# $.entities[].material.clearcoatref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Clearcoat layer (physical only)
# $.entities[].material.clearcoat.clearcoatref:#/$defs/__schema0 anyOf[1] number yes none none Clearcoat layer intensity 0–1
# $.entities[].material.clearcoat.clearcoatRoughnessref:#/$defs/__schema0 anyOf[1] number no none none Clearcoat roughness 0–1
# $.entities[].material.clearcoat.clearcoatMapref:#/$defs/__schema0 anyOf[1] string no none none Path to clearcoat intensity map
# $.entities[].material.clearcoat.clearcoatRoughnessMapref:#/$defs/__schema0 anyOf[1] string no none none Path to clearcoat roughness map
# $.entities[].material.transmissionref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Light transmission (physical only)
# $.entities[].material.transmission.transmissionref:#/$defs/__schema0 anyOf[1] number yes none none Transmission intensity 0–1 (glass, liquid)
# $.entities[].material.transmission.iorref:#/$defs/__schema0 anyOf[1] number no none none Index of refraction (default 1.5)
# $.entities[].material.transmission.thicknessref:#/$defs/__schema0 anyOf[1] number no none none Volume thickness for refraction
# $.entities[].material.transmission.attenuationColorref:#/$defs/__schema0 anyOf[1] string no none none Color absorbed over distance
# $.entities[].material.transmission.attenuationDistanceref:#/$defs/__schema0 anyOf[1] number no none none Distance at which attenuation color takes full effect
# $.entities[].material.transmission.transmissionMapref:#/$defs/__schema0 anyOf[1] string no none none Path to transmission map
# $.entities[].material.sheenref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Sheen layer (physical only)
# $.entities[].material.sheen.sheenref:#/$defs/__schema0 anyOf[1] number yes none none Sheen intensity 0–1 (fabric, velvet)
# $.entities[].material.sheen.sheenColorref:#/$defs/__schema0 anyOf[1] string no none none Sheen tint color
# $.entities[].material.sheen.sheenRoughnessref:#/$defs/__schema0 anyOf[1] number no none none Sheen roughness 0–1
# $.entities[].material.sheen.sheenColorMapref:#/$defs/__schema0 anyOf[1] string no none none Path to sheen color map
# $.entities[].material.sheen.sheenRoughnessMapref:#/$defs/__schema0 anyOf[1] string no none none Path to sheen roughness map
# $.entities[].material.iridescenceref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Iridescence thin-film (physical only)
# $.entities[].material.iridescence.iridescenceref:#/$defs/__schema0 anyOf[1] number yes none none Iridescence intensity 0–1 (soap bubbles, oil slick)
# $.entities[].material.iridescence.iridescenceIORref:#/$defs/__schema0 anyOf[1] number no none none Thin-film IOR (default 1.3)
# $.entities[].material.iridescence.iridescenceThicknessRangeref:#/$defs/__schema0 anyOf[1] array no none none Min/max thin-film thickness in nm
# $.entities[].material.iridescence.iridescenceThicknessRange[0]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.entities[].material.iridescence.iridescenceThicknessRange[1]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.entities[].material.iridescence.iridescenceMapref:#/$defs/__schema0 anyOf[1] string no none none Path to iridescence intensity map
# $.entities[].material.iridescence.iridescenceThicknessMapref:#/$defs/__schema0 anyOf[1] string no none none Path to iridescence thickness map
# $.entities[].material.displacementMapref:#/$defs/__schema0 anyOf[1] string no none none Path to displacement/height map
# $.entities[].material.displacementScaleref:#/$defs/__schema0 anyOf[1] number no none none Displacement height multiplier
# $.entities[].material.displacementBiasref:#/$defs/__schema0 anyOf[1] number no none none Displacement offset
# $.entities[].lightref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Light overrides merged with prefab
# $.entities[].light.typeref:#/$defs/__schema0 anyOf[1] enum (5) no none {"enum":["directional","point","spot","hemisphere","area"]} Light type
# $.entities[].light.colorref:#/$defs/__schema0 anyOf[1] string no none none Light color as CSS hex string
# $.entities[].light.intensityref:#/$defs/__schema0 anyOf[1] number no none none Native Three.js light intensity. Point and spot lights use candela with inverse-square falloff (a value near 1 is candle-scale); area lights use nit; directional and hemisphere lights use Three.js scene-light intensity units.
# $.entities[].light.groundColorref:#/$defs/__schema0 anyOf[1] string no none none Ground color for hemisphere lights
# $.entities[].light.distanceref:#/$defs/__schema0 anyOf[1] number no none none Maximum range of the light. 0 = infinite (point/spot only)
# $.entities[].light.decayref:#/$defs/__schema0 anyOf[1] number no none {"minimum":0} Native Three.js distance-decay exponent for point/spot lights. Default 2 gives physically correct inverse-square falloff.
# $.entities[].light.angleref:#/$defs/__schema0 anyOf[1] number no none none Spotlight cone angle in radians (spot only)
# $.entities[].light.penumbraref:#/$defs/__schema0 anyOf[1] number no none none Spotlight penumbra softness 0–1 (spot only)
# $.entities[].light.widthref:#/$defs/__schema0 anyOf[1] number no none none Area light width (area only). RectAreaLight has NO shadow support and only affects Standard/Physical materials — degrades loudly, not silently.
# $.entities[].light.heightref:#/$defs/__schema0 anyOf[1] number no none none Area light height (area only). RectAreaLight has NO shadow support and only affects Standard/Physical materials — degrades loudly, not silently.
# $.entities[].shadowref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Shadow overrides merged with prefab
# $.entities[].shadow.enabledref:#/$defs/__schema0 anyOf[1] boolean no none none Whether this light casts shadows
# $.entities[].shadow.mapSizeref:#/$defs/__schema0 anyOf[1] number no none none Shadow map resolution in pixels (e.g. 1024, 2048)
# $.entities[].shadow.cameraref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Shadow camera frustum bounds (directional lights)
# $.entities[].shadow.camera.leftref:#/$defs/__schema0 anyOf[1] number no none none Left bound of shadow camera frustum
# $.entities[].shadow.camera.rightref:#/$defs/__schema0 anyOf[1] number no none none Right bound of shadow camera frustum
# $.entities[].shadow.camera.topref:#/$defs/__schema0 anyOf[1] number no none none Top bound of shadow camera frustum
# $.entities[].shadow.camera.bottomref:#/$defs/__schema0 anyOf[1] number no none none Bottom bound of shadow camera frustum
# $.entities[].shadow.radiusref:#/$defs/__schema0 anyOf[1] number no none none Shadow map blur radius for soft shadows
# $.entities[].shadow.biasref:#/$defs/__schema0 anyOf[1] number no none none Shadow bias to reduce shadow acne artifacts
# $.entities[].physicsref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Physics overrides merged with prefab
# $.entities[].physics.bodyTyperef:#/$defs/__schema0 anyOf[1] enum (3) no none {"enum":["dynamic","fixed","kinematic"]} Physics body type: dynamic (simulated), fixed (immovable), kinematic (script-driven). A body of ANY type nested under a "dynamic"/"kinematic"-bodied ancestor throws a loud load error (T1.1/R1c) — see ScenePhysicsSchema.bodyType.
# $.entities[].physics.massref:#/$defs/__schema0 anyOf[1] number no none none Explicit mass override. If omitted, computed from collider density and volume
# $.entities[].physics.colliderref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Partial collider overrides merged with prefab
# $.entities[].physics.collider.typeref:#/$defs/__schema0 anyOf[1] enum (4) no none {"enum":["cuboid","ball","capsule","trimesh"]} Collider shape type. T1.2: every shape scales with the entity's composed world scale (self × ancestors) — for trimesh this means the entity's own mesh geometry vertices are pre-scaled per-axis before building the Rapier trimesh, so it matches whatever size ends up on screen; it does not require the collider's own dimension fields.
# $.entities[].physics.collider.halfExtentsref:#/$defs/__schema0 anyOf[1] array no none none Half-size [x, y, z] for cuboid colliders, in the ENTITY'S OWN LOCAL units. T1.2: scales with the entity — the actual Rapier collider is this value times the entity's composed world scale (self × every transformed ancestor), per axis, baked in once at load time (Rapier has no live notion of an Object3D's scale).
# $.entities[].physics.collider.halfExtents[0]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.entities[].physics.collider.halfExtents[1]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.entities[].physics.collider.halfExtents[2]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.entities[].physics.collider.radiusref:#/$defs/__schema0 anyOf[1] number no none none Radius for ball and capsule colliders, in the ENTITY'S OWN LOCAL units. T1.2: scales with the entity's composed world scale, which MUST be uniform on the collider's round axes (ball: all of x/y/z; capsule: x and z) — a non-uniform scale there throws a loud load error (Rapier balls/capsules cannot represent an ellipse).
# $.entities[].physics.collider.halfHeightref:#/$defs/__schema0 anyOf[1] number no none none Half-height for capsule colliders, in the entity's own local units, along the capsule's axis (Y). T1.2: scales by the entity's composed world scale on that axis.
# $.entities[].physics.collider.frictionref:#/$defs/__schema0 anyOf[1] number no none none Surface friction coefficient
# $.entities[].physics.collider.restitutionref:#/$defs/__schema0 anyOf[1] number no none none Bounciness coefficient (0 = no bounce, 1 = perfect bounce)
# $.entities[].physics.collider.densityref:#/$defs/__schema0 anyOf[1] number no none none Mass density. Used to compute mass from collider volume
# $.entities[].physics.collider.offsetref:#/$defs/__schema0 anyOf[1] array no none none Translation offset relative to body origin, in the ENTITY'S OWN LOCAL units. T1.2/R1c: scales with the entity's composed world scale (self × every transformed ancestor), per axis, the same way halfExtents/radius/halfHeight do — an unscaled offset would silently drift away from the entity's visual anchor point under any non-1 scale.
# $.entities[].physics.collider.offset[0]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.entities[].physics.collider.offset[1]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.entities[].physics.collider.offset[2]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.entities[].physics.collider.isSensorref:#/$defs/__schema0 anyOf[1] boolean no none none When true, detects overlaps without physical blocking (trigger volume)
# $.entities[].physics.collider.collisionGroupsref:#/$defs/__schema0 anyOf[1] number no none none Bitmask: collision layers this collider belongs to (max 16 bits)
# $.entities[].physics.collider.collisionFilterref:#/$defs/__schema0 anyOf[1] number no none none Bitmask: collision layers this collider interacts with (max 16 bits)
# $.entities[].cameraref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Camera overrides merged with prefab
# $.entities[].camera.typeref:#/$defs/__schema0 anyOf[1] enum (2) no none {"enum":["perspective","orthographic"]} Camera projection type
# $.entities[].camera.fovref:#/$defs/__schema0 anyOf[1] number no none none Vertical field of view in degrees (perspective only)
# $.entities[].camera.nearref:#/$defs/__schema0 anyOf[1] number no none none Near clipping plane distance
# $.entities[].camera.farref:#/$defs/__schema0 anyOf[1] number no none none Far clipping plane distance
# $.entities[].camera.orthoSizeref:#/$defs/__schema0 anyOf[1] number no none none Half-height of the orthographic frustum (orthographic only)
# $.entities[].camera.widthref:#/$defs/__schema0 anyOf[1] number no none none Render width in pixels. Defaults to viewport width
# $.entities[].camera.heightref:#/$defs/__schema0 anyOf[1] number no none none Render height in pixels. Defaults to viewport height
# $.entities[].audioref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Audio source
# $.entities[].audio.srcref:#/$defs/__schema0 anyOf[1] string no none none Path to audio file (WAV, MP3, OGG)
# $.entities[].audio.spatialref:#/$defs/__schema0 anyOf[1] boolean no none none Enable 3D spatial audio (positional sound)
# $.entities[].audio.volumeref:#/$defs/__schema0 anyOf[1] number no none none Playback volume 0–1
# $.entities[].audio.refDistanceref:#/$defs/__schema0 anyOf[1] number no none none Distance at which volume starts to attenuate (spatial only)
# $.entities[].audio.rolloffFactorref:#/$defs/__schema0 anyOf[1] number no none none How quickly volume attenuates with distance (spatial only)
# $.entities[].audio.maxDistanceref:#/$defs/__schema0 anyOf[1] number no none none Maximum distance at which sound is audible (spatial only)
# $.entities[].audio.loopref:#/$defs/__schema0 anyOf[1] boolean no none none Whether the audio should loop
# $.entities[].audio.autoplayref:#/$defs/__schema0 anyOf[1] boolean no none none Start playing automatically when the scene loads
# $.entities[].animationref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Animation configuration
# $.entities[].animation.autoplayref:#/$defs/__schema0 anyOf[1] string no none none Clip name to play automatically on load
# $.entities[].animation.loopref:#/$defs/__schema0 anyOf[1] boolean no none none Whether the autoplay clip should loop
# $.entities[].animation.clipAliasesref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}} Map raw GLTF clip names to clean names
# $.entities[].animation.clipAliases{key}ref:#/$defs/__schema0 anyOf[1] string no none none Missing source description
# $.entities[].particlesref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Particle overrides merged with prefab
# $.entities[].particles.autoDestroyref:#/$defs/__schema0 anyOf[1] boolean no none none Destroy the particle system when all particles have died
# $.entities[].particles.loopingref:#/$defs/__schema0 anyOf[1] boolean no none none Continuously emit particles
# $.entities[].particles.prewarmref:#/$defs/__schema0 anyOf[1] boolean no none none Simulate one full cycle on start so particles appear immediately
# $.entities[].particles.durationref:#/$defs/__schema0 anyOf[1] number no none none Total emission duration in seconds
# $.entities[].particles.shaperef:#/$defs/__schema0 anyOf[1] oneOf (8) no none none Emitter shape that defines where particles spawn
# $.entities[].particles.shaperef:#/$defs/__schema0 anyOf[1] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.shape.typeref:#/$defs/__schema0 anyOf[1] oneOf[0] const "point" yes none {"const":"point"} Missing source description
# $.entities[].particles.shaperef:#/$defs/__schema0 anyOf[1] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.shape.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] const "sphere" yes none {"const":"sphere"} Missing source description
# $.entities[].particles.shape.radiusref:#/$defs/__schema0 anyOf[1] oneOf[1] number no none none Sphere radius
# $.entities[].particles.shape.arcref:#/$defs/__schema0 anyOf[1] oneOf[1] number no none none Arc angle in radians (2π = full sphere)
# $.entities[].particles.shape.thicknessref:#/$defs/__schema0 anyOf[1] oneOf[1] number no none none Shell thickness 0–1 (1 = solid, 0 = surface only)
# $.entities[].particles.shaperef:#/$defs/__schema0 anyOf[1] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.shape.typeref:#/$defs/__schema0 anyOf[1] oneOf[2] const "hemisphere" yes none {"const":"hemisphere"} Missing source description
# $.entities[].particles.shape.radiusref:#/$defs/__schema0 anyOf[1] oneOf[2] number no none none Hemisphere radius
# $.entities[].particles.shape.arcref:#/$defs/__schema0 anyOf[1] oneOf[2] number no none none Arc angle in radians
# $.entities[].particles.shape.thicknessref:#/$defs/__schema0 anyOf[1] oneOf[2] number no none none Shell thickness 0–1
# $.entities[].particles.shaperef:#/$defs/__schema0 anyOf[1] oneOf[3] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.shape.typeref:#/$defs/__schema0 anyOf[1] oneOf[3] const "cone" yes none {"const":"cone"} Missing source description
# $.entities[].particles.shape.radiusref:#/$defs/__schema0 anyOf[1] oneOf[3] number no none none Cone base radius
# $.entities[].particles.shape.arcref:#/$defs/__schema0 anyOf[1] oneOf[3] number no none none Arc angle in radians
# $.entities[].particles.shape.thicknessref:#/$defs/__schema0 anyOf[1] oneOf[3] number no none none Shell thickness 0–1
# $.entities[].particles.shape.angleref:#/$defs/__schema0 anyOf[1] oneOf[3] number no none none Cone opening angle in radians
# $.entities[].particles.shaperef:#/$defs/__schema0 anyOf[1] oneOf[4] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.shape.typeref:#/$defs/__schema0 anyOf[1] oneOf[4] const "circle" yes none {"const":"circle"} Missing source description
# $.entities[].particles.shape.radiusref:#/$defs/__schema0 anyOf[1] oneOf[4] number no none none Circle radius
# $.entities[].particles.shape.arcref:#/$defs/__schema0 anyOf[1] oneOf[4] number no none none Arc angle in radians
# $.entities[].particles.shape.thicknessref:#/$defs/__schema0 anyOf[1] oneOf[4] number no none none Ring thickness 0–1
# $.entities[].particles.shaperef:#/$defs/__schema0 anyOf[1] oneOf[5] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.shape.typeref:#/$defs/__schema0 anyOf[1] oneOf[5] const "donut" yes none {"const":"donut"} Missing source description
# $.entities[].particles.shape.radiusref:#/$defs/__schema0 anyOf[1] oneOf[5] number no none none Donut major radius
# $.entities[].particles.shape.arcref:#/$defs/__schema0 anyOf[1] oneOf[5] number no none none Arc angle in radians
# $.entities[].particles.shape.thicknessref:#/$defs/__schema0 anyOf[1] oneOf[5] number no none none Ring thickness 0–1
# $.entities[].particles.shape.donutRadiusref:#/$defs/__schema0 anyOf[1] oneOf[5] number no none none Donut tube (minor) radius
# $.entities[].particles.shaperef:#/$defs/__schema0 anyOf[1] oneOf[6] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.shape.typeref:#/$defs/__schema0 anyOf[1] oneOf[6] const "rectangle" yes none {"const":"rectangle"} Missing source description
# $.entities[].particles.shape.widthref:#/$defs/__schema0 anyOf[1] oneOf[6] number no none none Rectangle width
# $.entities[].particles.shape.heightref:#/$defs/__schema0 anyOf[1] oneOf[6] number no none none Rectangle height
# $.entities[].particles.shape.thicknessref:#/$defs/__schema0 anyOf[1] oneOf[6] number no none none Extrusion depth 0–1
# $.entities[].particles.shaperef:#/$defs/__schema0 anyOf[1] oneOf[7] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.shape.typeref:#/$defs/__schema0 anyOf[1] oneOf[7] const "grid" yes none {"const":"grid"} Missing source description
# $.entities[].particles.shape.widthref:#/$defs/__schema0 anyOf[1] oneOf[7] number no none none Grid total width
# $.entities[].particles.shape.heightref:#/$defs/__schema0 anyOf[1] oneOf[7] number no none none Grid total height
# $.entities[].particles.shape.columnref:#/$defs/__schema0 anyOf[1] oneOf[7] integer no none {"minimum":-9007199254740991,"maximum":9007199254740991} Number of columns
# $.entities[].particles.shape.rowref:#/$defs/__schema0 anyOf[1] oneOf[7] integer no none {"minimum":-9007199254740991,"maximum":9007199254740991} Number of rows
# $.entities[].particles.startLiferef:#/$defs/__schema0 anyOf[1] oneOf (3) no none none Initial particle lifetime in seconds
# $.entities[].particles.startLiferef:#/$defs/__schema0 anyOf[1] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startLife.typeref:#/$defs/__schema0 anyOf[1] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.startLife.valueref:#/$defs/__schema0 anyOf[1] oneOf[0] number yes none none Missing source description
# $.entities[].particles.startLiferef:#/$defs/__schema0 anyOf[1] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startLife.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.startLife.aref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.startLife.bref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.startLiferef:#/$defs/__schema0 anyOf[1] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startLife.typeref:#/$defs/__schema0 anyOf[1] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.startLife.functionsref:#/$defs/__schema0 anyOf[1] oneOf[2] array yes none none Missing source description
# $.entities[].particles.startLife.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startLife.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startLife.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startLife.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startLife.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startLife.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startLife.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startSpeedref:#/$defs/__schema0 anyOf[1] oneOf (3) no none none Initial particle speed
# $.entities[].particles.startSpeedref:#/$defs/__schema0 anyOf[1] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startSpeed.typeref:#/$defs/__schema0 anyOf[1] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.startSpeed.valueref:#/$defs/__schema0 anyOf[1] oneOf[0] number yes none none Missing source description
# $.entities[].particles.startSpeedref:#/$defs/__schema0 anyOf[1] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startSpeed.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.startSpeed.aref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.startSpeed.bref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.startSpeedref:#/$defs/__schema0 anyOf[1] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startSpeed.typeref:#/$defs/__schema0 anyOf[1] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.startSpeed.functionsref:#/$defs/__schema0 anyOf[1] oneOf[2] array yes none none Missing source description
# $.entities[].particles.startSpeed.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startSpeed.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startSpeed.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startSpeed.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startSpeed.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startSpeed.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startSpeed.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startSizeref:#/$defs/__schema0 anyOf[1] oneOf (3) no none none Initial particle size
# $.entities[].particles.startSizeref:#/$defs/__schema0 anyOf[1] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startSize.typeref:#/$defs/__schema0 anyOf[1] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.startSize.valueref:#/$defs/__schema0 anyOf[1] oneOf[0] number yes none none Missing source description
# $.entities[].particles.startSizeref:#/$defs/__schema0 anyOf[1] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startSize.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.startSize.aref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.startSize.bref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.startSizeref:#/$defs/__schema0 anyOf[1] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startSize.typeref:#/$defs/__schema0 anyOf[1] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.startSize.functionsref:#/$defs/__schema0 anyOf[1] oneOf[2] array yes none none Missing source description
# $.entities[].particles.startSize.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startSize.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startSize.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startSize.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startSize.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startSize.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startSize.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startRotationref:#/$defs/__schema0 anyOf[1] oneOf (3) no none none Initial particle rotation in radians
# $.entities[].particles.startRotationref:#/$defs/__schema0 anyOf[1] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startRotation.typeref:#/$defs/__schema0 anyOf[1] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.startRotation.valueref:#/$defs/__schema0 anyOf[1] oneOf[0] number yes none none Missing source description
# $.entities[].particles.startRotationref:#/$defs/__schema0 anyOf[1] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startRotation.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.startRotation.aref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.startRotation.bref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.startRotationref:#/$defs/__schema0 anyOf[1] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startRotation.typeref:#/$defs/__schema0 anyOf[1] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.startRotation.functionsref:#/$defs/__schema0 anyOf[1] oneOf[2] array yes none none Missing source description
# $.entities[].particles.startRotation.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startRotation.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startRotation.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startRotation.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startRotation.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startRotation.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startRotation.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startColorref:#/$defs/__schema0 anyOf[1] oneOf (4) no none none Initial particle color
# $.entities[].particles.startColorref:#/$defs/__schema0 anyOf[1] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.typeref:#/$defs/__schema0 anyOf[1] oneOf[0] const "ConstantColor" yes none {"const":"ConstantColor"} Missing source description
# $.entities[].particles.startColor.colorref:#/$defs/__schema0 anyOf[1] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.color.rref:#/$defs/__schema0 anyOf[1] oneOf[0] number yes none none Missing source description
# $.entities[].particles.startColor.color.gref:#/$defs/__schema0 anyOf[1] oneOf[0] number yes none none Missing source description
# $.entities[].particles.startColor.color.bref:#/$defs/__schema0 anyOf[1] oneOf[0] number yes none none Missing source description
# $.entities[].particles.startColor.color.aref:#/$defs/__schema0 anyOf[1] oneOf[0] number yes none none Missing source description
# $.entities[].particles.startColorref:#/$defs/__schema0 anyOf[1] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] const "ColorRange" yes none {"const":"ColorRange"} Missing source description
# $.entities[].particles.startColor.aref:#/$defs/__schema0 anyOf[1] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.a.rref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.startColor.a.gref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.startColor.a.bref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.startColor.a.aref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.startColor.bref:#/$defs/__schema0 anyOf[1] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.b.rref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.startColor.b.gref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.startColor.b.bref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.startColor.b.aref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.startColorref:#/$defs/__schema0 anyOf[1] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.typeref:#/$defs/__schema0 anyOf[1] oneOf[2] const "Gradient" yes none {"const":"Gradient"} Missing source description
# $.entities[].particles.startColor.colorref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.color.typeref:#/$defs/__schema0 anyOf[1] oneOf[2] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.entities[].particles.startColor.color.subTyperef:#/$defs/__schema0 anyOf[1] oneOf[2] const "Color" yes none {"const":"Color"} Missing source description
# $.entities[].particles.startColor.color.keysref:#/$defs/__schema0 anyOf[1] oneOf[2] array yes none none Missing source description
# $.entities[].particles.startColor.color.keys[]ref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.color.keys[].valueref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.color.keys[].value.rref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startColor.color.keys[].value.gref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startColor.color.keys[].value.bref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startColor.color.keys[].posref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startColor.alpharef:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.alpha.typeref:#/$defs/__schema0 anyOf[1] oneOf[2] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.entities[].particles.startColor.alpha.subTyperef:#/$defs/__schema0 anyOf[1] oneOf[2] const "Number" yes none {"const":"Number"} Missing source description
# $.entities[].particles.startColor.alpha.keysref:#/$defs/__schema0 anyOf[1] oneOf[2] array yes none none Missing source description
# $.entities[].particles.startColor.alpha.keys[]ref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.alpha.keys[].valueref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startColor.alpha.keys[].posref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startColorref:#/$defs/__schema0 anyOf[1] oneOf[3] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.typeref:#/$defs/__schema0 anyOf[1] oneOf[3] const "RandomColorBetweenGradient" yes none {"const":"RandomColorBetweenGradient"} Missing source description
# $.entities[].particles.startColor.gradient1ref:#/$defs/__schema0 anyOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.gradient1.typeref:#/$defs/__schema0 anyOf[1] oneOf[3] const "Gradient" yes none {"const":"Gradient"} Missing source description
# $.entities[].particles.startColor.gradient1.colorref:#/$defs/__schema0 anyOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.gradient1.color.typeref:#/$defs/__schema0 anyOf[1] oneOf[3] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.entities[].particles.startColor.gradient1.color.subTyperef:#/$defs/__schema0 anyOf[1] oneOf[3] const "Color" yes none {"const":"Color"} Missing source description
# $.entities[].particles.startColor.gradient1.color.keysref:#/$defs/__schema0 anyOf[1] oneOf[3] array yes none none Missing source description
# $.entities[].particles.startColor.gradient1.color.keys[]ref:#/$defs/__schema0 anyOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.gradient1.color.keys[].valueref:#/$defs/__schema0 anyOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.gradient1.color.keys[].value.rref:#/$defs/__schema0 anyOf[1] oneOf[3] number yes none none Missing source description
# $.entities[].particles.startColor.gradient1.color.keys[].value.gref:#/$defs/__schema0 anyOf[1] oneOf[3] number yes none none Missing source description
# $.entities[].particles.startColor.gradient1.color.keys[].value.bref:#/$defs/__schema0 anyOf[1] oneOf[3] number yes none none Missing source description
# $.entities[].particles.startColor.gradient1.color.keys[].posref:#/$defs/__schema0 anyOf[1] oneOf[3] number yes none none Missing source description
# $.entities[].particles.startColor.gradient1.alpharef:#/$defs/__schema0 anyOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.gradient1.alpha.typeref:#/$defs/__schema0 anyOf[1] oneOf[3] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.entities[].particles.startColor.gradient1.alpha.subTyperef:#/$defs/__schema0 anyOf[1] oneOf[3] const "Number" yes none {"const":"Number"} Missing source description
# $.entities[].particles.startColor.gradient1.alpha.keysref:#/$defs/__schema0 anyOf[1] oneOf[3] array yes none none Missing source description
# $.entities[].particles.startColor.gradient1.alpha.keys[]ref:#/$defs/__schema0 anyOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.gradient1.alpha.keys[].valueref:#/$defs/__schema0 anyOf[1] oneOf[3] number yes none none Missing source description
# $.entities[].particles.startColor.gradient1.alpha.keys[].posref:#/$defs/__schema0 anyOf[1] oneOf[3] number yes none none Missing source description
# $.entities[].particles.startColor.gradient2ref:#/$defs/__schema0 anyOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.gradient2.typeref:#/$defs/__schema0 anyOf[1] oneOf[3] const "Gradient" yes none {"const":"Gradient"} Missing source description
# $.entities[].particles.startColor.gradient2.colorref:#/$defs/__schema0 anyOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.gradient2.color.typeref:#/$defs/__schema0 anyOf[1] oneOf[3] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.entities[].particles.startColor.gradient2.color.subTyperef:#/$defs/__schema0 anyOf[1] oneOf[3] const "Color" yes none {"const":"Color"} Missing source description
# $.entities[].particles.startColor.gradient2.color.keysref:#/$defs/__schema0 anyOf[1] oneOf[3] array yes none none Missing source description
# $.entities[].particles.startColor.gradient2.color.keys[]ref:#/$defs/__schema0 anyOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.gradient2.color.keys[].valueref:#/$defs/__schema0 anyOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.gradient2.color.keys[].value.rref:#/$defs/__schema0 anyOf[1] oneOf[3] number yes none none Missing source description
# $.entities[].particles.startColor.gradient2.color.keys[].value.gref:#/$defs/__schema0 anyOf[1] oneOf[3] number yes none none Missing source description
# $.entities[].particles.startColor.gradient2.color.keys[].value.bref:#/$defs/__schema0 anyOf[1] oneOf[3] number yes none none Missing source description
# $.entities[].particles.startColor.gradient2.color.keys[].posref:#/$defs/__schema0 anyOf[1] oneOf[3] number yes none none Missing source description
# $.entities[].particles.startColor.gradient2.alpharef:#/$defs/__schema0 anyOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.gradient2.alpha.typeref:#/$defs/__schema0 anyOf[1] oneOf[3] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.entities[].particles.startColor.gradient2.alpha.subTyperef:#/$defs/__schema0 anyOf[1] oneOf[3] const "Number" yes none {"const":"Number"} Missing source description
# $.entities[].particles.startColor.gradient2.alpha.keysref:#/$defs/__schema0 anyOf[1] oneOf[3] array yes none none Missing source description
# $.entities[].particles.startColor.gradient2.alpha.keys[]ref:#/$defs/__schema0 anyOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startColor.gradient2.alpha.keys[].valueref:#/$defs/__schema0 anyOf[1] oneOf[3] number yes none none Missing source description
# $.entities[].particles.startColor.gradient2.alpha.keys[].posref:#/$defs/__schema0 anyOf[1] oneOf[3] number yes none none Missing source description
# $.entities[].particles.startLengthref:#/$defs/__schema0 anyOf[1] oneOf (3) no none none Initial trail length (trail render mode only)
# $.entities[].particles.startLengthref:#/$defs/__schema0 anyOf[1] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startLength.typeref:#/$defs/__schema0 anyOf[1] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.startLength.valueref:#/$defs/__schema0 anyOf[1] oneOf[0] number yes none none Missing source description
# $.entities[].particles.startLengthref:#/$defs/__schema0 anyOf[1] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startLength.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.startLength.aref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.startLength.bref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.startLengthref:#/$defs/__schema0 anyOf[1] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startLength.typeref:#/$defs/__schema0 anyOf[1] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.startLength.functionsref:#/$defs/__schema0 anyOf[1] oneOf[2] array yes none none Missing source description
# $.entities[].particles.startLength.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startLength.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startLength.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startLength.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startLength.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startLength.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startLength.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startTileIndexref:#/$defs/__schema0 anyOf[1] oneOf (3) no none none Initial sprite sheet tile index
# $.entities[].particles.startTileIndexref:#/$defs/__schema0 anyOf[1] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startTileIndex.typeref:#/$defs/__schema0 anyOf[1] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.startTileIndex.valueref:#/$defs/__schema0 anyOf[1] oneOf[0] number yes none none Missing source description
# $.entities[].particles.startTileIndexref:#/$defs/__schema0 anyOf[1] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startTileIndex.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.startTileIndex.aref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.startTileIndex.bref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.startTileIndexref:#/$defs/__schema0 anyOf[1] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.startTileIndex.typeref:#/$defs/__schema0 anyOf[1] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.startTileIndex.functionsref:#/$defs/__schema0 anyOf[1] oneOf[2] array yes none none Missing source description
# $.entities[].particles.startTileIndex.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startTileIndex.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.startTileIndex.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startTileIndex.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startTileIndex.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startTileIndex.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.startTileIndex.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.emissionOverTimeref:#/$defs/__schema0 anyOf[1] oneOf (3) no none none Particles emitted per second
# $.entities[].particles.emissionOverTimeref:#/$defs/__schema0 anyOf[1] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.emissionOverTime.typeref:#/$defs/__schema0 anyOf[1] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.emissionOverTime.valueref:#/$defs/__schema0 anyOf[1] oneOf[0] number yes none none Missing source description
# $.entities[].particles.emissionOverTimeref:#/$defs/__schema0 anyOf[1] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.emissionOverTime.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.emissionOverTime.aref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.emissionOverTime.bref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.emissionOverTimeref:#/$defs/__schema0 anyOf[1] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.emissionOverTime.typeref:#/$defs/__schema0 anyOf[1] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.emissionOverTime.functionsref:#/$defs/__schema0 anyOf[1] oneOf[2] array yes none none Missing source description
# $.entities[].particles.emissionOverTime.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.emissionOverTime.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.emissionOverTime.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.emissionOverTime.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.emissionOverTime.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.emissionOverTime.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.emissionOverTime.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.emissionOverDistanceref:#/$defs/__schema0 anyOf[1] oneOf (3) no none none Particles emitted per unit of emitter movement
# $.entities[].particles.emissionOverDistanceref:#/$defs/__schema0 anyOf[1] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.emissionOverDistance.typeref:#/$defs/__schema0 anyOf[1] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.emissionOverDistance.valueref:#/$defs/__schema0 anyOf[1] oneOf[0] number yes none none Missing source description
# $.entities[].particles.emissionOverDistanceref:#/$defs/__schema0 anyOf[1] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.emissionOverDistance.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.emissionOverDistance.aref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.emissionOverDistance.bref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.emissionOverDistanceref:#/$defs/__schema0 anyOf[1] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.emissionOverDistance.typeref:#/$defs/__schema0 anyOf[1] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.emissionOverDistance.functionsref:#/$defs/__schema0 anyOf[1] oneOf[2] array yes none none Missing source description
# $.entities[].particles.emissionOverDistance.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.emissionOverDistance.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.emissionOverDistance.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.emissionOverDistance.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.emissionOverDistance.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.emissionOverDistance.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.emissionOverDistance.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.emissionBurstsref:#/$defs/__schema0 anyOf[1] array no none none Timed burst emissions
# $.entities[].particles.emissionBursts[]ref:#/$defs/__schema0 anyOf[1] object yes none {"additionalProperties":false} Timed particle burst
# $.entities[].particles.emissionBursts[].timeref:#/$defs/__schema0 anyOf[1] number yes none none Time offset in seconds within the emission cycle
# $.entities[].particles.emissionBursts[].countref:#/$defs/__schema0 anyOf[1] oneOf (3) yes none none Number of particles to emit
# $.entities[].particles.emissionBursts[].countref:#/$defs/__schema0 anyOf[1] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.emissionBursts[].count.typeref:#/$defs/__schema0 anyOf[1] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.emissionBursts[].count.valueref:#/$defs/__schema0 anyOf[1] oneOf[0] number yes none none Missing source description
# $.entities[].particles.emissionBursts[].countref:#/$defs/__schema0 anyOf[1] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.emissionBursts[].count.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.emissionBursts[].count.aref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.emissionBursts[].count.bref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.emissionBursts[].countref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.emissionBursts[].count.typeref:#/$defs/__schema0 anyOf[1] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.emissionBursts[].count.functionsref:#/$defs/__schema0 anyOf[1] oneOf[2] array yes none none Missing source description
# $.entities[].particles.emissionBursts[].count.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.emissionBursts[].count.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.emissionBursts[].count.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.emissionBursts[].count.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.emissionBursts[].count.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.emissionBursts[].count.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.emissionBursts[].count.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.emissionBursts[].cycleref:#/$defs/__schema0 anyOf[1] number no none none Burst repeat interval in seconds
# $.entities[].particles.emissionBursts[].intervalref:#/$defs/__schema0 anyOf[1] number no none none Delay between burst repetitions
# $.entities[].particles.emissionBursts[].probabilityref:#/$defs/__schema0 anyOf[1] number no none none Chance of burst firing (0–1)
# $.entities[].particles.behaviorsref:#/$defs/__schema0 anyOf[1] array no none none Behaviors applied to particles over their lifetime
# $.entities[].particles.behaviors[]ref:#/$defs/__schema0 anyOf[1] oneOf (14) yes none none Particle behavior applied over lifetime
# $.entities[].particles.behaviors[]ref:#/$defs/__schema0 anyOf[1] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].typeref:#/$defs/__schema0 anyOf[1] oneOf[0] const "ApplyForce" yes none {"const":"ApplyForce"} Missing source description
# $.entities[].particles.behaviors[].directionref:#/$defs/__schema0 anyOf[1] oneOf[0] array yes none none Force direction vector
# $.entities[].particles.behaviors[].direction[0]ref:#/$defs/__schema0 anyOf[1] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].direction[1]ref:#/$defs/__schema0 anyOf[1] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].direction[2]ref:#/$defs/__schema0 anyOf[1] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].magnituderef:#/$defs/__schema0 anyOf[1] oneOf[0] oneOf (3) yes none none Force magnitude
# $.entities[].particles.behaviors[].magnituderef:#/$defs/__schema0 anyOf[1] oneOf[0] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].magnitude.typeref:#/$defs/__schema0 anyOf[1] oneOf[0] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.behaviors[].magnitude.valueref:#/$defs/__schema0 anyOf[1] oneOf[0] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].magnituderef:#/$defs/__schema0 anyOf[1] oneOf[0] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].magnitude.typeref:#/$defs/__schema0 anyOf[1] oneOf[0] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.behaviors[].magnitude.aref:#/$defs/__schema0 anyOf[1] oneOf[0] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].magnitude.bref:#/$defs/__schema0 anyOf[1] oneOf[0] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].magnituderef:#/$defs/__schema0 anyOf[1] oneOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].magnitude.typeref:#/$defs/__schema0 anyOf[1] oneOf[0] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.behaviors[].magnitude.functionsref:#/$defs/__schema0 anyOf[1] oneOf[0] oneOf[2] array yes none none Missing source description
# $.entities[].particles.behaviors[].magnitude.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].magnitude.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].magnitude.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].magnitude.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].magnitude.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].magnitude.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].magnitude.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[0] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[]ref:#/$defs/__schema0 anyOf[1] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].typeref:#/$defs/__schema0 anyOf[1] oneOf[1] const "ColorOverLife" yes none {"const":"ColorOverLife"} Missing source description
# $.entities[].particles.behaviors[].colorref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf (4) yes none none Color curve over particle lifetime
# $.entities[].particles.behaviors[].colorref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[0] const "ConstantColor" yes none {"const":"ConstantColor"} Missing source description
# $.entities[].particles.behaviors[].color.colorref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.color.rref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.color.gref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.color.bref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.color.aref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].colorref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[1] const "ColorRange" yes none {"const":"ColorRange"} Missing source description
# $.entities[].particles.behaviors[].color.aref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.a.rref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.a.gref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.a.bref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.a.aref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.bref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.b.rref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.b.gref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.b.bref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.b.aref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].colorref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[2] const "Gradient" yes none {"const":"Gradient"} Missing source description
# $.entities[].particles.behaviors[].color.colorref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.color.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[2] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.entities[].particles.behaviors[].color.color.subTyperef:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[2] const "Color" yes none {"const":"Color"} Missing source description
# $.entities[].particles.behaviors[].color.color.keysref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[2] array yes none none Missing source description
# $.entities[].particles.behaviors[].color.color.keys[]ref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.color.keys[].valueref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.color.keys[].value.rref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.color.keys[].value.gref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.color.keys[].value.bref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.color.keys[].posref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.alpharef:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.alpha.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[2] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.entities[].particles.behaviors[].color.alpha.subTyperef:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[2] const "Number" yes none {"const":"Number"} Missing source description
# $.entities[].particles.behaviors[].color.alpha.keysref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[2] array yes none none Missing source description
# $.entities[].particles.behaviors[].color.alpha.keys[]ref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.alpha.keys[].valueref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.alpha.keys[].posref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].colorref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] const "RandomColorBetweenGradient" yes none {"const":"RandomColorBetweenGradient"} Missing source description
# $.entities[].particles.behaviors[].color.gradient1ref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.gradient1.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] const "Gradient" yes none {"const":"Gradient"} Missing source description
# $.entities[].particles.behaviors[].color.gradient1.colorref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.gradient1.color.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.entities[].particles.behaviors[].color.gradient1.color.subTyperef:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] const "Color" yes none {"const":"Color"} Missing source description
# $.entities[].particles.behaviors[].color.gradient1.color.keysref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] array yes none none Missing source description
# $.entities[].particles.behaviors[].color.gradient1.color.keys[]ref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.gradient1.color.keys[].valueref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.gradient1.color.keys[].value.rref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.gradient1.color.keys[].value.gref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.gradient1.color.keys[].value.bref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.gradient1.color.keys[].posref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.gradient1.alpharef:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.gradient1.alpha.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.entities[].particles.behaviors[].color.gradient1.alpha.subTyperef:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] const "Number" yes none {"const":"Number"} Missing source description
# $.entities[].particles.behaviors[].color.gradient1.alpha.keysref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] array yes none none Missing source description
# $.entities[].particles.behaviors[].color.gradient1.alpha.keys[]ref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.gradient1.alpha.keys[].valueref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.gradient1.alpha.keys[].posref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.gradient2ref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.gradient2.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] const "Gradient" yes none {"const":"Gradient"} Missing source description
# $.entities[].particles.behaviors[].color.gradient2.colorref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.gradient2.color.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.entities[].particles.behaviors[].color.gradient2.color.subTyperef:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] const "Color" yes none {"const":"Color"} Missing source description
# $.entities[].particles.behaviors[].color.gradient2.color.keysref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] array yes none none Missing source description
# $.entities[].particles.behaviors[].color.gradient2.color.keys[]ref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.gradient2.color.keys[].valueref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.gradient2.color.keys[].value.rref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.gradient2.color.keys[].value.gref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.gradient2.color.keys[].value.bref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.gradient2.color.keys[].posref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.gradient2.alpharef:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.gradient2.alpha.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.entities[].particles.behaviors[].color.gradient2.alpha.subTyperef:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] const "Number" yes none {"const":"Number"} Missing source description
# $.entities[].particles.behaviors[].color.gradient2.alpha.keysref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] array yes none none Missing source description
# $.entities[].particles.behaviors[].color.gradient2.alpha.keys[]ref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].color.gradient2.alpha.keys[].valueref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] number yes none none Missing source description
# $.entities[].particles.behaviors[].color.gradient2.alpha.keys[].posref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] number yes none none Missing source description
# $.entities[].particles.behaviors[]ref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].typeref:#/$defs/__schema0 anyOf[1] oneOf[2] const "SizeOverLife" yes none {"const":"SizeOverLife"} Missing source description
# $.entities[].particles.behaviors[].sizeref:#/$defs/__schema0 anyOf[1] oneOf[2] oneOf (3) yes none none Size curve over particle lifetime
# $.entities[].particles.behaviors[].sizeref:#/$defs/__schema0 anyOf[1] oneOf[2] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].size.typeref:#/$defs/__schema0 anyOf[1] oneOf[2] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.behaviors[].size.valueref:#/$defs/__schema0 anyOf[1] oneOf[2] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].sizeref:#/$defs/__schema0 anyOf[1] oneOf[2] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].size.typeref:#/$defs/__schema0 anyOf[1] oneOf[2] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.behaviors[].size.aref:#/$defs/__schema0 anyOf[1] oneOf[2] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].size.bref:#/$defs/__schema0 anyOf[1] oneOf[2] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].sizeref:#/$defs/__schema0 anyOf[1] oneOf[2] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].size.typeref:#/$defs/__schema0 anyOf[1] oneOf[2] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.behaviors[].size.functionsref:#/$defs/__schema0 anyOf[1] oneOf[2] oneOf[2] array yes none none Missing source description
# $.entities[].particles.behaviors[].size.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[2] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].size.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[2] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].size.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[2] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].size.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[2] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].size.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[2] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].size.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[2] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].size.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[2] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[]ref:#/$defs/__schema0 anyOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].typeref:#/$defs/__schema0 anyOf[1] oneOf[3] const "SpeedOverLife" yes none {"const":"SpeedOverLife"} Missing source description
# $.entities[].particles.behaviors[].speedref:#/$defs/__schema0 anyOf[1] oneOf[3] oneOf (3) yes none none Speed multiplier curve over lifetime
# $.entities[].particles.behaviors[].speedref:#/$defs/__schema0 anyOf[1] oneOf[3] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].speed.typeref:#/$defs/__schema0 anyOf[1] oneOf[3] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.behaviors[].speed.valueref:#/$defs/__schema0 anyOf[1] oneOf[3] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].speedref:#/$defs/__schema0 anyOf[1] oneOf[3] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].speed.typeref:#/$defs/__schema0 anyOf[1] oneOf[3] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.behaviors[].speed.aref:#/$defs/__schema0 anyOf[1] oneOf[3] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].speed.bref:#/$defs/__schema0 anyOf[1] oneOf[3] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].speedref:#/$defs/__schema0 anyOf[1] oneOf[3] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].speed.typeref:#/$defs/__schema0 anyOf[1] oneOf[3] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.behaviors[].speed.functionsref:#/$defs/__schema0 anyOf[1] oneOf[3] oneOf[2] array yes none none Missing source description
# $.entities[].particles.behaviors[].speed.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[3] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].speed.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[3] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].speed.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[3] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].speed.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[3] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].speed.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[3] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].speed.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[3] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].speed.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[3] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[]ref:#/$defs/__schema0 anyOf[1] oneOf[4] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].typeref:#/$defs/__schema0 anyOf[1] oneOf[4] const "RotationOverLife" yes none {"const":"RotationOverLife"} Missing source description
# $.entities[].particles.behaviors[].angularVelocityref:#/$defs/__schema0 anyOf[1] oneOf[4] oneOf (3) yes none none Angular velocity in radians/sec
# $.entities[].particles.behaviors[].angularVelocityref:#/$defs/__schema0 anyOf[1] oneOf[4] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].angularVelocity.typeref:#/$defs/__schema0 anyOf[1] oneOf[4] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.behaviors[].angularVelocity.valueref:#/$defs/__schema0 anyOf[1] oneOf[4] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].angularVelocityref:#/$defs/__schema0 anyOf[1] oneOf[4] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].angularVelocity.typeref:#/$defs/__schema0 anyOf[1] oneOf[4] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.behaviors[].angularVelocity.aref:#/$defs/__schema0 anyOf[1] oneOf[4] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].angularVelocity.bref:#/$defs/__schema0 anyOf[1] oneOf[4] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].angularVelocityref:#/$defs/__schema0 anyOf[1] oneOf[4] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].angularVelocity.typeref:#/$defs/__schema0 anyOf[1] oneOf[4] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.behaviors[].angularVelocity.functionsref:#/$defs/__schema0 anyOf[1] oneOf[4] oneOf[2] array yes none none Missing source description
# $.entities[].particles.behaviors[].angularVelocity.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[4] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].angularVelocity.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[4] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].angularVelocity.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[4] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].angularVelocity.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[4] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].angularVelocity.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[4] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].angularVelocity.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[4] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].angularVelocity.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[4] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[]ref:#/$defs/__schema0 anyOf[1] oneOf[5] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].typeref:#/$defs/__schema0 anyOf[1] oneOf[5] const "ForceOverLife" yes none {"const":"ForceOverLife"} Missing source description
# $.entities[].particles.behaviors[].xref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf (3) yes none none Force along X axis over lifetime
# $.entities[].particles.behaviors[].xref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].x.typeref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.behaviors[].x.valueref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].xref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].x.typeref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.behaviors[].x.aref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].x.bref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].xref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].x.typeref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.behaviors[].x.functionsref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] array yes none none Missing source description
# $.entities[].particles.behaviors[].x.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].x.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].x.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].x.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].x.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].x.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].x.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].yref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf (3) yes none none Force along Y axis over lifetime
# $.entities[].particles.behaviors[].yref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].y.typeref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.behaviors[].y.valueref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].yref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].y.typeref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.behaviors[].y.aref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].y.bref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].yref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].y.typeref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.behaviors[].y.functionsref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] array yes none none Missing source description
# $.entities[].particles.behaviors[].y.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].y.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].y.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].y.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].y.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].y.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].y.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].zref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf (3) yes none none Force along Z axis over lifetime
# $.entities[].particles.behaviors[].zref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].z.typeref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.behaviors[].z.valueref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].zref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].z.typeref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.behaviors[].z.aref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].z.bref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].zref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].z.typeref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.behaviors[].z.functionsref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] array yes none none Missing source description
# $.entities[].particles.behaviors[].z.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].z.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].z.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].z.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].z.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].z.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].z.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[]ref:#/$defs/__schema0 anyOf[1] oneOf[6] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].typeref:#/$defs/__schema0 anyOf[1] oneOf[6] const "OrbitOverLife" yes none {"const":"OrbitOverLife"} Missing source description
# $.entities[].particles.behaviors[].orbitSpeedref:#/$defs/__schema0 anyOf[1] oneOf[6] oneOf (3) yes none none Orbit speed over lifetime
# $.entities[].particles.behaviors[].orbitSpeedref:#/$defs/__schema0 anyOf[1] oneOf[6] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].orbitSpeed.typeref:#/$defs/__schema0 anyOf[1] oneOf[6] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.behaviors[].orbitSpeed.valueref:#/$defs/__schema0 anyOf[1] oneOf[6] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].orbitSpeedref:#/$defs/__schema0 anyOf[1] oneOf[6] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].orbitSpeed.typeref:#/$defs/__schema0 anyOf[1] oneOf[6] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.behaviors[].orbitSpeed.aref:#/$defs/__schema0 anyOf[1] oneOf[6] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].orbitSpeed.bref:#/$defs/__schema0 anyOf[1] oneOf[6] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].orbitSpeedref:#/$defs/__schema0 anyOf[1] oneOf[6] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].orbitSpeed.typeref:#/$defs/__schema0 anyOf[1] oneOf[6] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.behaviors[].orbitSpeed.functionsref:#/$defs/__schema0 anyOf[1] oneOf[6] oneOf[2] array yes none none Missing source description
# $.entities[].particles.behaviors[].orbitSpeed.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[6] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].orbitSpeed.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[6] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].orbitSpeed.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[6] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].orbitSpeed.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[6] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].orbitSpeed.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[6] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].orbitSpeed.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[6] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].orbitSpeed.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[6] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].axisref:#/$defs/__schema0 anyOf[1] oneOf[6] array no none none Orbit axis. Defaults to [0, 1, 0]
# $.entities[].particles.behaviors[].axis[0]ref:#/$defs/__schema0 anyOf[1] oneOf[6] number yes none none Missing source description
# $.entities[].particles.behaviors[].axis[1]ref:#/$defs/__schema0 anyOf[1] oneOf[6] number yes none none Missing source description
# $.entities[].particles.behaviors[].axis[2]ref:#/$defs/__schema0 anyOf[1] oneOf[6] number yes none none Missing source description
# $.entities[].particles.behaviors[]ref:#/$defs/__schema0 anyOf[1] oneOf[7] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].typeref:#/$defs/__schema0 anyOf[1] oneOf[7] const "Noise" yes none {"const":"Noise"} Missing source description
# $.entities[].particles.behaviors[].frequencyref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf (3) yes none none Noise frequency
# $.entities[].particles.behaviors[].frequencyref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].frequency.typeref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.behaviors[].frequency.valueref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].frequencyref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].frequency.typeref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.behaviors[].frequency.aref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].frequency.bref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].frequencyref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].frequency.typeref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.behaviors[].frequency.functionsref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] array yes none none Missing source description
# $.entities[].particles.behaviors[].frequency.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].frequency.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].frequency.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].frequency.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].frequency.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].frequency.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].frequency.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].powerref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf (3) yes none none Noise amplitude
# $.entities[].particles.behaviors[].powerref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].power.typeref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.behaviors[].power.valueref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].powerref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].power.typeref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.behaviors[].power.aref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].power.bref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].powerref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].power.typeref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.behaviors[].power.functionsref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] array yes none none Missing source description
# $.entities[].particles.behaviors[].power.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].power.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].power.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].power.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].power.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].power.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].power.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].positionAmountref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf (3) no none none Position displacement amount
# $.entities[].particles.behaviors[].positionAmountref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].positionAmount.typeref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.behaviors[].positionAmount.valueref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].positionAmountref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].positionAmount.typeref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.behaviors[].positionAmount.aref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].positionAmount.bref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].positionAmountref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].positionAmount.typeref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.behaviors[].positionAmount.functionsref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] array yes none none Missing source description
# $.entities[].particles.behaviors[].positionAmount.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].positionAmount.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].positionAmount.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].positionAmount.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].positionAmount.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].positionAmount.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].positionAmount.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].rotationAmountref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf (3) no none none Rotation displacement amount
# $.entities[].particles.behaviors[].rotationAmountref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].rotationAmount.typeref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.behaviors[].rotationAmount.valueref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].rotationAmountref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].rotationAmount.typeref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.behaviors[].rotationAmount.aref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].rotationAmount.bref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].rotationAmountref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].rotationAmount.typeref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.behaviors[].rotationAmount.functionsref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] array yes none none Missing source description
# $.entities[].particles.behaviors[].rotationAmount.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].rotationAmount.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].rotationAmount.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].rotationAmount.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].rotationAmount.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].rotationAmount.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].rotationAmount.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[]ref:#/$defs/__schema0 anyOf[1] oneOf[8] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].typeref:#/$defs/__schema0 anyOf[1] oneOf[8] const "TurbulenceField" yes none {"const":"TurbulenceField"} Missing source description
# $.entities[].particles.behaviors[].scaleref:#/$defs/__schema0 anyOf[1] oneOf[8] array yes none none Turbulence field scale
# $.entities[].particles.behaviors[].scale[0]ref:#/$defs/__schema0 anyOf[1] oneOf[8] number yes none none Missing source description
# $.entities[].particles.behaviors[].scale[1]ref:#/$defs/__schema0 anyOf[1] oneOf[8] number yes none none Missing source description
# $.entities[].particles.behaviors[].scale[2]ref:#/$defs/__schema0 anyOf[1] oneOf[8] number yes none none Missing source description
# $.entities[].particles.behaviors[].octavesref:#/$defs/__schema0 anyOf[1] oneOf[8] integer yes none {"minimum":-9007199254740991,"maximum":9007199254740991} Noise octave count
# $.entities[].particles.behaviors[].velocityMultiplierref:#/$defs/__schema0 anyOf[1] oneOf[8] array yes none none Velocity multiplier per axis
# $.entities[].particles.behaviors[].velocityMultiplier[0]ref:#/$defs/__schema0 anyOf[1] oneOf[8] number yes none none Missing source description
# $.entities[].particles.behaviors[].velocityMultiplier[1]ref:#/$defs/__schema0 anyOf[1] oneOf[8] number yes none none Missing source description
# $.entities[].particles.behaviors[].velocityMultiplier[2]ref:#/$defs/__schema0 anyOf[1] oneOf[8] number yes none none Missing source description
# $.entities[].particles.behaviors[].timeScaleref:#/$defs/__schema0 anyOf[1] oneOf[8] array yes none none Time scale per axis
# $.entities[].particles.behaviors[].timeScale[0]ref:#/$defs/__schema0 anyOf[1] oneOf[8] number yes none none Missing source description
# $.entities[].particles.behaviors[].timeScale[1]ref:#/$defs/__schema0 anyOf[1] oneOf[8] number yes none none Missing source description
# $.entities[].particles.behaviors[].timeScale[2]ref:#/$defs/__schema0 anyOf[1] oneOf[8] number yes none none Missing source description
# $.entities[].particles.behaviors[]ref:#/$defs/__schema0 anyOf[1] oneOf[9] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].typeref:#/$defs/__schema0 anyOf[1] oneOf[9] const "FrameOverLife" yes none {"const":"FrameOverLife"} Missing source description
# $.entities[].particles.behaviors[].frameref:#/$defs/__schema0 anyOf[1] oneOf[9] oneOf (3) yes none none Sprite sheet frame index over lifetime
# $.entities[].particles.behaviors[].frameref:#/$defs/__schema0 anyOf[1] oneOf[9] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].frame.typeref:#/$defs/__schema0 anyOf[1] oneOf[9] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.behaviors[].frame.valueref:#/$defs/__schema0 anyOf[1] oneOf[9] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].frameref:#/$defs/__schema0 anyOf[1] oneOf[9] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].frame.typeref:#/$defs/__schema0 anyOf[1] oneOf[9] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.behaviors[].frame.aref:#/$defs/__schema0 anyOf[1] oneOf[9] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].frame.bref:#/$defs/__schema0 anyOf[1] oneOf[9] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].frameref:#/$defs/__schema0 anyOf[1] oneOf[9] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].frame.typeref:#/$defs/__schema0 anyOf[1] oneOf[9] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.behaviors[].frame.functionsref:#/$defs/__schema0 anyOf[1] oneOf[9] oneOf[2] array yes none none Missing source description
# $.entities[].particles.behaviors[].frame.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[9] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].frame.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[9] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].frame.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[9] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].frame.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[9] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].frame.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[9] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].frame.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[9] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].frame.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[9] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[]ref:#/$defs/__schema0 anyOf[1] oneOf[10] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].typeref:#/$defs/__schema0 anyOf[1] oneOf[10] const "LimitSpeedOverLife" yes none {"const":"LimitSpeedOverLife"} Missing source description
# $.entities[].particles.behaviors[].speedref:#/$defs/__schema0 anyOf[1] oneOf[10] oneOf (3) yes none none Maximum speed over lifetime
# $.entities[].particles.behaviors[].speedref:#/$defs/__schema0 anyOf[1] oneOf[10] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].speed.typeref:#/$defs/__schema0 anyOf[1] oneOf[10] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.behaviors[].speed.valueref:#/$defs/__schema0 anyOf[1] oneOf[10] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].speedref:#/$defs/__schema0 anyOf[1] oneOf[10] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].speed.typeref:#/$defs/__schema0 anyOf[1] oneOf[10] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.behaviors[].speed.aref:#/$defs/__schema0 anyOf[1] oneOf[10] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].speed.bref:#/$defs/__schema0 anyOf[1] oneOf[10] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].speedref:#/$defs/__schema0 anyOf[1] oneOf[10] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].speed.typeref:#/$defs/__schema0 anyOf[1] oneOf[10] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.behaviors[].speed.functionsref:#/$defs/__schema0 anyOf[1] oneOf[10] oneOf[2] array yes none none Missing source description
# $.entities[].particles.behaviors[].speed.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[10] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].speed.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[10] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].speed.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[10] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].speed.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[10] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].speed.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[10] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].speed.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[10] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].speed.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[10] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].dampenref:#/$defs/__schema0 anyOf[1] oneOf[10] number yes none none Damping factor when speed exceeds limit (0–1)
# $.entities[].particles.behaviors[]ref:#/$defs/__schema0 anyOf[1] oneOf[11] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].typeref:#/$defs/__schema0 anyOf[1] oneOf[11] const "ChangeEmitDirection" yes none {"const":"ChangeEmitDirection"} Missing source description
# $.entities[].particles.behaviors[].angleref:#/$defs/__schema0 anyOf[1] oneOf[11] oneOf (3) yes none none Angle deviation from original emit direction
# $.entities[].particles.behaviors[].angleref:#/$defs/__schema0 anyOf[1] oneOf[11] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].angle.typeref:#/$defs/__schema0 anyOf[1] oneOf[11] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.behaviors[].angle.valueref:#/$defs/__schema0 anyOf[1] oneOf[11] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].angleref:#/$defs/__schema0 anyOf[1] oneOf[11] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].angle.typeref:#/$defs/__schema0 anyOf[1] oneOf[11] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.behaviors[].angle.aref:#/$defs/__schema0 anyOf[1] oneOf[11] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].angle.bref:#/$defs/__schema0 anyOf[1] oneOf[11] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].angleref:#/$defs/__schema0 anyOf[1] oneOf[11] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].angle.typeref:#/$defs/__schema0 anyOf[1] oneOf[11] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.behaviors[].angle.functionsref:#/$defs/__schema0 anyOf[1] oneOf[11] oneOf[2] array yes none none Missing source description
# $.entities[].particles.behaviors[].angle.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[11] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].angle.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[11] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].angle.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[11] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].angle.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[11] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].angle.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[11] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].angle.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[11] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].angle.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[11] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[]ref:#/$defs/__schema0 anyOf[1] oneOf[12] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].typeref:#/$defs/__schema0 anyOf[1] oneOf[12] const "GravityForce" yes none {"const":"GravityForce"} Missing source description
# $.entities[].particles.behaviors[].centerref:#/$defs/__schema0 anyOf[1] oneOf[12] array yes none none Gravity center point
# $.entities[].particles.behaviors[].center[0]ref:#/$defs/__schema0 anyOf[1] oneOf[12] number yes none none Missing source description
# $.entities[].particles.behaviors[].center[1]ref:#/$defs/__schema0 anyOf[1] oneOf[12] number yes none none Missing source description
# $.entities[].particles.behaviors[].center[2]ref:#/$defs/__schema0 anyOf[1] oneOf[12] number yes none none Missing source description
# $.entities[].particles.behaviors[].magnituderef:#/$defs/__schema0 anyOf[1] oneOf[12] number yes none none Gravity force strength
# $.entities[].particles.behaviors[]ref:#/$defs/__schema0 anyOf[1] oneOf[13] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].typeref:#/$defs/__schema0 anyOf[1] oneOf[13] const "WidthOverLength" yes none {"const":"WidthOverLength"} Missing source description
# $.entities[].particles.behaviors[].widthref:#/$defs/__schema0 anyOf[1] oneOf[13] oneOf (3) yes none none Trail width over trail length
# $.entities[].particles.behaviors[].widthref:#/$defs/__schema0 anyOf[1] oneOf[13] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].width.typeref:#/$defs/__schema0 anyOf[1] oneOf[13] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.entities[].particles.behaviors[].width.valueref:#/$defs/__schema0 anyOf[1] oneOf[13] oneOf[0] number yes none none Missing source description
# $.entities[].particles.behaviors[].widthref:#/$defs/__schema0 anyOf[1] oneOf[13] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].width.typeref:#/$defs/__schema0 anyOf[1] oneOf[13] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.entities[].particles.behaviors[].width.aref:#/$defs/__schema0 anyOf[1] oneOf[13] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].width.bref:#/$defs/__schema0 anyOf[1] oneOf[13] oneOf[1] number yes none none Missing source description
# $.entities[].particles.behaviors[].widthref:#/$defs/__schema0 anyOf[1] oneOf[13] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].width.typeref:#/$defs/__schema0 anyOf[1] oneOf[13] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.entities[].particles.behaviors[].width.functionsref:#/$defs/__schema0 anyOf[1] oneOf[13] oneOf[2] array yes none none Missing source description
# $.entities[].particles.behaviors[].width.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[13] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].width.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[13] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.entities[].particles.behaviors[].width.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[13] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].width.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[13] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].width.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[13] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].width.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[13] oneOf[2] number yes none none Missing source description
# $.entities[].particles.behaviors[].width.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[13] oneOf[2] number yes none none Missing source description
# $.entities[].particles.renderModeref:#/$defs/__schema0 anyOf[1] enum (6) no none {"enum":["billboard","stretchedBillboard","mesh","trail","horizontalBillboard","verticalBillboard"]} How particles are rendered (billboard, trail, mesh, etc.)
# $.entities[].particles.worldSpaceref:#/$defs/__schema0 anyOf[1] boolean no none none Simulate particles in world space instead of local space
# $.entities[].particles.renderOrderref:#/$defs/__schema0 anyOf[1] number no none none Render order for sorting (higher = rendered later)
# $.entities[].particles.uTileCountref:#/$defs/__schema0 anyOf[1] integer no none {"minimum":-9007199254740991,"maximum":9007199254740991} Horizontal tile count in sprite sheet
# $.entities[].particles.vTileCountref:#/$defs/__schema0 anyOf[1] integer no none {"minimum":-9007199254740991,"maximum":9007199254740991} Vertical tile count in sprite sheet
# $.entities[].particles.blendTilesref:#/$defs/__schema0 anyOf[1] boolean no none none Blend between sprite sheet tiles for smooth animation
# $.entities[].particles.softParticlesref:#/$defs/__schema0 anyOf[1] boolean no none none Enable soft particle depth fading
# $.entities[].particles.softFarFaderef:#/$defs/__schema0 anyOf[1] number no none none Far fade distance for soft particles
# $.entities[].particles.softNearFaderef:#/$defs/__schema0 anyOf[1] number no none none Near fade distance for soft particles
# $.entities[].particles.materialref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Particle material settings
# $.entities[].particles.material.typeref:#/$defs/__schema0 anyOf[1] enum (2) no none {"enum":["basic","standard"]} Particle material shading model
# $.entities[].particles.material.colorref:#/$defs/__schema0 anyOf[1] string no none none Particle color as CSS hex string
# $.entities[].particles.material.mapref:#/$defs/__schema0 anyOf[1] string no none none Path to particle sprite texture
# $.entities[].particles.material.blendingref:#/$defs/__schema0 anyOf[1] enum (2) no none {"enum":["normal","additive"]} Blending mode (additive for glowing/fire effects)
# $.entities[].particles.material.transparentref:#/$defs/__schema0 anyOf[1] boolean no none none Enable transparency
# $.entities[].particles.material.depthWriteref:#/$defs/__schema0 anyOf[1] boolean no none none Write to depth buffer (disable for additive effects)
# $.entities[].particles.material.sideref:#/$defs/__schema0 anyOf[1] enum (3) no none {"enum":["front","back","double"]} Which face sides to render
# $.entities[].splineref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Spline overrides merged with prefab
# $.entities[].spline.curveTyperef:#/$defs/__schema0 anyOf[1] enum (3) no none {"enum":["centripetal","chordal","catmullrom"]} CatmullRomCurve3 parameterization type. Matches Three.js curveType parameter
# $.entities[].spline.pointsref:#/$defs/__schema0 anyOf[1] array no none {"minItems":2} Control point positions in local space
# $.entities[].spline.points[]ref:#/$defs/__schema0 anyOf[1] array yes none none 3D vector as [x, y, z]
# $.entities[].spline.points[][0]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.entities[].spline.points[][1]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.entities[].spline.points[][2]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.entities[].spline.closedref:#/$defs/__schema0 anyOf[1] boolean no none none Whether the spline forms a closed loop
# $.entities[].spline.tensionref:#/$defs/__schema0 anyOf[1] number no none none Curve tension (default 0.5). Only used when curveType is catmullrom; ignored for centripetal and chordal
# $.entities[].spline.resolutionref:#/$defs/__schema0 anyOf[1] number no none none Number of line segments for rendering the curve
# $.entities[].jointsref:#/$defs/__schema0 anyOf[1] array no none none Physics joints connecting to other bodies
# $.entities[].joints[]ref:#/$defs/__schema0 anyOf[1] object yes none {"additionalProperties":false} Physics joint constraint between two bodies
# $.entities[].joints[].typeref:#/$defs/__schema0 anyOf[1] enum (5) yes none {"enum":["fixed","revolute","prismatic","spherical","spring"]} Joint constraint type
# $.entities[].joints[].targetref:#/$defs/__schema0 anyOf[1] string yes none none Entity ID of the body this joint connects to
# $.entities[].joints[].anchorref:#/$defs/__schema0 anyOf[1] array no none none Local anchor point on this body
# $.entities[].joints[].anchor[0]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.entities[].joints[].anchor[1]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.entities[].joints[].anchor[2]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.entities[].joints[].targetAnchorref:#/$defs/__schema0 anyOf[1] array no none none Local anchor point on the target body
# $.entities[].joints[].targetAnchor[0]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.entities[].joints[].targetAnchor[1]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.entities[].joints[].targetAnchor[2]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.entities[].joints[].axisref:#/$defs/__schema0 anyOf[1] array no none none Rotation/slide axis for revolute and prismatic joints
# $.entities[].joints[].axis[0]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.entities[].joints[].axis[1]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.entities[].joints[].axis[2]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.entities[].joints[].limitsref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Angle or distance limits for revolute/prismatic joints
# $.entities[].joints[].limits.minref:#/$defs/__schema0 anyOf[1] number yes none none Minimum angle (degrees) or distance
# $.entities[].joints[].limits.maxref:#/$defs/__schema0 anyOf[1] number yes none none Maximum angle (degrees) or distance
# $.entities[].joints[].stiffnessref:#/$defs/__schema0 anyOf[1] number no none none Spring stiffness coefficient
# $.entities[].joints[].dampingref:#/$defs/__schema0 anyOf[1] number no none none Spring damping coefficient
# $.entities[].joints[].restLengthref:#/$defs/__schema0 anyOf[1] number no none none Spring rest length
# $.entities[].childrenref:#/$defs/__schema0 anyOf[1] array no none none Child entities
# $.entities[].children[]ref:#/$defs/__schema0 anyOf[1] ref #/$defs/__schema0 yes none none Missing source description