Skip to content

Prefab format

VGAI Reference 0.3

Planned versioned generated-schema truth covering Scene and prefab schemas, parsing, and runtime loading, Authored three-dimensional physics joints, 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/prefab.schema.json · 1887 branch-sensitive field records · 498 source-described. This source intentionally supersedes the frozen study boundary.

prefab · file · 1887 fields
Field / branchTypeRequiredDefaultConstraintsDescription
# $ object yes none {"additionalProperties":false} Prefab file (.prefab.json)
# $.version number yes none none Prefab file format version
# $.name string yes none none Prefab display name
# $.root ref #/$defs/__schema0 yes none none Root entity of the prefab
# $.rootref:#/$defs/__schema0 anyOf (2) yes none none Missing source description
# $.rootref:#/$defs/__schema0 anyOf[0] object yes none {"additionalProperties":false} Missing source description
# $.root.idref:#/$defs/__schema0 anyOf[0] string no none none Unique entity ID. Auto-generated if omitted
# $.root.nameref:#/$defs/__schema0 anyOf[0] string yes none none Human-readable entity name (shown in hierarchy panel)
# $.root.visibleref:#/$defs/__schema0 anyOf[0] boolean no none none Whether the entity and its children are rendered
# $.root.lockedref:#/$defs/__schema0 anyOf[0] boolean no none none Prevent selection and editing in the scene editor
# $.root.tagsref:#/$defs/__schema0 anyOf[0] array no none none Arbitrary string tags for runtime queries
# $.root.tags[]ref:#/$defs/__schema0 anyOf[0] string yes none none Missing source description
# $.root.prefabref:#/$defs/__schema0 anyOf[0] string no none none Path to .prefab.json file to instantiate
# $.root.materialRefref:#/$defs/__schema0 anyOf[0] string no none none Path to shared .mat.json material asset. Mutually exclusive with inline material
# $.root.transformref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":false} Local transform relative to parent
# $.root.transform.positionref:#/$defs/__schema0 anyOf[0] array no none none World-space position [x, y, z]
# $.root.transform.position[0]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.root.transform.position[1]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.root.transform.position[2]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.root.transform.rotationref:#/$defs/__schema0 anyOf[0] array no none none Rotation quaternion [x, y, z, w]
# $.root.transform.rotation[0]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.root.transform.rotation[1]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.root.transform.rotation[2]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.root.transform.rotation[3]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.root.transform.scaleref:#/$defs/__schema0 anyOf[0] array no none none Scale factor per axis [x, y, z]. Defaults to [1, 1, 1]
# $.root.transform.scale[0]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.root.transform.scale[1]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.root.transform.scale[2]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.root.boneAttachmentref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":false} Animated bone/socket attachment. Use transform for the local position, rotation, and scale offset
# $.root.boneAttachment.targetref:#/$defs/__schema0 anyOf[0] string yes none none Entity ID whose animated skeleton owns the target bone
# $.root.boneAttachment.boneref:#/$defs/__schema0 anyOf[0] string yes none none Exact name of the target bone or socket Object3D
# $.root.pivotref:#/$defs/__schema0 anyOf[0] array no none none Local-space pivot point for rotation/scale. [0,0,0] = geometry center
# $.root.pivot[0]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.root.pivot[1]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.root.pivot[2]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.root.navigationref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":false} Navigation mesh role for this entity
# $.root.navigation.roleref:#/$defs/__schema0 anyOf[0] enum (2) yes none {"enum":["walkable","obstacle"]} Whether this entity is walkable surface or an obstacle
# $.root.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.
# $.root.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.
# $.root.render.frustumCullingref:#/$defs/__schema0 anyOf[0] boolean no none none Per-instance frustum culling for batched content.
# $.root.render.lodref:#/$defs/__schema0 anyOf[0] boolean no none none Distance-based geometry swap (LOD) for eligible entities.
# $.root.render.shadowsref:#/$defs/__schema0 anyOf[0] boolean no none none Enable the shadow map. Per-entity cast/receive still applies.
# $.root.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)
# $.root.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
# $.root.components{key}{key}ref:#/$defs/__schema0 anyOf[0] anyOf (4) no none none Missing source description
# $.root.components{key}{key}ref:#/$defs/__schema0 anyOf[0] anyOf[0] anyOf (3) no none none Missing source description
# $.root.components{key}{key}ref:#/$defs/__schema0 anyOf[0] anyOf[0] anyOf[0] number no none none Missing source description
# $.root.components{key}{key}ref:#/$defs/__schema0 anyOf[0] anyOf[0] anyOf[1] string no none none Missing source description
# $.root.components{key}{key}ref:#/$defs/__schema0 anyOf[0] anyOf[0] anyOf[2] boolean no none none Missing source description
# $.root.components{key}{key}ref:#/$defs/__schema0 anyOf[0] anyOf[1] array no none none Missing source description
# $.root.components{key}{key}[]ref:#/$defs/__schema0 anyOf[0] anyOf[1] number yes none none Missing source description
# $.root.components{key}{key}ref:#/$defs/__schema0 anyOf[0] anyOf[2] array no none none Missing source description
# $.root.components{key}{key}[]ref:#/$defs/__schema0 anyOf[0] anyOf[2] string yes none none Missing source description
# $.root.components{key}{key}ref:#/$defs/__schema0 anyOf[0] anyOf[3] array no none none Missing source description
# $.root.components{key}{key}[]ref:#/$defs/__schema0 anyOf[0] anyOf[3] boolean yes none none Missing source description
# $.root.meshref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":false} Mesh geometry
# $.root.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
# $.root.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]
# $.root.mesh.args[]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.root.mesh.srcref:#/$defs/__schema0 anyOf[0] string no none none Path to the external render asset. Required for "gltf" (GLTF/GLB) and "splat" (SPZ)
# $.root.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).
# $.root.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.
# $.root.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.
# $.root.mesh.lod[]ref:#/$defs/__schema0 anyOf[0] object yes none {"additionalProperties":false} Missing source description
# $.root.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.
# $.root.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).
# $.root.materialref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":false} Material appearance
# $.root.material.typeref:#/$defs/__schema0 anyOf[0] enum (4) yes none {"enum":["standard","physical","basic","toon"]} Material shading model
# $.root.material.colorref:#/$defs/__schema0 anyOf[0] string no none none Base color as CSS hex string (e.g. "#ff0000")
# $.root.material.metalnessref:#/$defs/__schema0 anyOf[0] number no none none Metalness factor 0–1 (standard/physical only)
# $.root.material.roughnessref:#/$defs/__schema0 anyOf[0] number no none none Roughness factor 0–1 (standard/physical only)
# $.root.material.mapref:#/$defs/__schema0 anyOf[0] string no none none Path to albedo/diffuse texture image
# $.root.material.normalMapref:#/$defs/__schema0 anyOf[0] string no none none Path to normal map texture image
# $.root.material.emissiveref:#/$defs/__schema0 anyOf[0] string no none none Emissive color as CSS hex string
# $.root.material.emissiveIntensityref:#/$defs/__schema0 anyOf[0] number no none none Emissive light intensity multiplier
# $.root.material.emissiveMapref:#/$defs/__schema0 anyOf[0] string no none none Path to emissive map texture image
# $.root.material.aoMapref:#/$defs/__schema0 anyOf[0] string no none none Path to ambient occlusion map texture image
# $.root.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.
# $.root.material.lightMapIntensityref:#/$defs/__schema0 anyOf[0] number no none none Lightmap intensity multiplier (default 1).
# $.root.material.roughnessMapref:#/$defs/__schema0 anyOf[0] string no none none Path to roughness map texture image
# $.root.material.metalnessMapref:#/$defs/__schema0 anyOf[0] string no none none Path to metalness map texture image
# $.root.material.opacityref:#/$defs/__schema0 anyOf[0] number no none none Opacity 0–1. Set transparent: true to enable
# $.root.material.transparentref:#/$defs/__schema0 anyOf[0] boolean no none none Enable alpha blending for this material
# $.root.material.sideref:#/$defs/__schema0 anyOf[0] enum (3) no none {"enum":["front","back","double"]} Which face sides to render
# $.root.material.flatShadingref:#/$defs/__schema0 anyOf[0] boolean no none none Use flat (faceted) shading instead of smooth
# $.root.material.clearcoatref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":false} Clearcoat layer (physical only)
# $.root.material.clearcoat.clearcoatref:#/$defs/__schema0 anyOf[0] number yes none none Clearcoat layer intensity 0–1
# $.root.material.clearcoat.clearcoatRoughnessref:#/$defs/__schema0 anyOf[0] number no none none Clearcoat roughness 0–1
# $.root.material.clearcoat.clearcoatMapref:#/$defs/__schema0 anyOf[0] string no none none Path to clearcoat intensity map
# $.root.material.clearcoat.clearcoatRoughnessMapref:#/$defs/__schema0 anyOf[0] string no none none Path to clearcoat roughness map
# $.root.material.transmissionref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":false} Light transmission (physical only)
# $.root.material.transmission.transmissionref:#/$defs/__schema0 anyOf[0] number yes none none Transmission intensity 0–1 (glass, liquid)
# $.root.material.transmission.iorref:#/$defs/__schema0 anyOf[0] number no none none Index of refraction (default 1.5)
# $.root.material.transmission.thicknessref:#/$defs/__schema0 anyOf[0] number no none none Volume thickness for refraction
# $.root.material.transmission.attenuationColorref:#/$defs/__schema0 anyOf[0] string no none none Color absorbed over distance
# $.root.material.transmission.attenuationDistanceref:#/$defs/__schema0 anyOf[0] number no none none Distance at which attenuation color takes full effect
# $.root.material.transmission.transmissionMapref:#/$defs/__schema0 anyOf[0] string no none none Path to transmission map
# $.root.material.sheenref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":false} Sheen layer (physical only)
# $.root.material.sheen.sheenref:#/$defs/__schema0 anyOf[0] number yes none none Sheen intensity 0–1 (fabric, velvet)
# $.root.material.sheen.sheenColorref:#/$defs/__schema0 anyOf[0] string no none none Sheen tint color
# $.root.material.sheen.sheenRoughnessref:#/$defs/__schema0 anyOf[0] number no none none Sheen roughness 0–1
# $.root.material.sheen.sheenColorMapref:#/$defs/__schema0 anyOf[0] string no none none Path to sheen color map
# $.root.material.sheen.sheenRoughnessMapref:#/$defs/__schema0 anyOf[0] string no none none Path to sheen roughness map
# $.root.material.iridescenceref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":false} Iridescence thin-film (physical only)
# $.root.material.iridescence.iridescenceref:#/$defs/__schema0 anyOf[0] number yes none none Iridescence intensity 0–1 (soap bubbles, oil slick)
# $.root.material.iridescence.iridescenceIORref:#/$defs/__schema0 anyOf[0] number no none none Thin-film IOR (default 1.3)
# $.root.material.iridescence.iridescenceThicknessRangeref:#/$defs/__schema0 anyOf[0] array no none none Min/max thin-film thickness in nm
# $.root.material.iridescence.iridescenceThicknessRange[0]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.root.material.iridescence.iridescenceThicknessRange[1]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.root.material.iridescence.iridescenceMapref:#/$defs/__schema0 anyOf[0] string no none none Path to iridescence intensity map
# $.root.material.iridescence.iridescenceThicknessMapref:#/$defs/__schema0 anyOf[0] string no none none Path to iridescence thickness map
# $.root.material.displacementMapref:#/$defs/__schema0 anyOf[0] string no none none Path to displacement/height map
# $.root.material.displacementScaleref:#/$defs/__schema0 anyOf[0] number no none none Displacement height multiplier
# $.root.material.displacementBiasref:#/$defs/__schema0 anyOf[0] number no none none Displacement offset
# $.root.lightref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":false} Light source
# $.root.light.typeref:#/$defs/__schema0 anyOf[0] enum (5) yes none {"enum":["directional","point","spot","hemisphere","area"]} Light type
# $.root.light.colorref:#/$defs/__schema0 anyOf[0] string no none none Light color as CSS hex string
# $.root.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.
# $.root.light.groundColorref:#/$defs/__schema0 anyOf[0] string no none none Ground color for hemisphere lights
# $.root.light.distanceref:#/$defs/__schema0 anyOf[0] number no none none Maximum range of the light. 0 = infinite (point/spot only)
# $.root.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.
# $.root.light.angleref:#/$defs/__schema0 anyOf[0] number no none none Spotlight cone angle in radians (spot only)
# $.root.light.penumbraref:#/$defs/__schema0 anyOf[0] number no none none Spotlight penumbra softness 0–1 (spot only)
# $.root.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.
# $.root.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.
# $.root.shadowref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":false} Shadow configuration
# $.root.shadow.enabledref:#/$defs/__schema0 anyOf[0] boolean yes none none Whether this light casts shadows
# $.root.shadow.mapSizeref:#/$defs/__schema0 anyOf[0] number no none none Shadow map resolution in pixels (e.g. 1024, 2048)
# $.root.shadow.cameraref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":false} Shadow camera frustum bounds (directional lights)
# $.root.shadow.camera.leftref:#/$defs/__schema0 anyOf[0] number no none none Left bound of shadow camera frustum
# $.root.shadow.camera.rightref:#/$defs/__schema0 anyOf[0] number no none none Right bound of shadow camera frustum
# $.root.shadow.camera.topref:#/$defs/__schema0 anyOf[0] number no none none Top bound of shadow camera frustum
# $.root.shadow.camera.bottomref:#/$defs/__schema0 anyOf[0] number no none none Bottom bound of shadow camera frustum
# $.root.shadow.radiusref:#/$defs/__schema0 anyOf[0] number no none none Shadow map blur radius for soft shadows
# $.root.shadow.biasref:#/$defs/__schema0 anyOf[0] number no none none Shadow bias to reduce shadow acne artifacts
# $.root.physicsref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":false} Physics rigid body
# $.root.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.
# $.root.physics.massref:#/$defs/__schema0 anyOf[0] number no none none Explicit mass override. If omitted, computed from collider density and volume
# $.root.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.
# $.root.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.
# $.root.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).
# $.root.physics.collider.halfExtents[0]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.root.physics.collider.halfExtents[1]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.root.physics.collider.halfExtents[2]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.root.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).
# $.root.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.
# $.root.physics.collider.frictionref:#/$defs/__schema0 anyOf[0] number no none none Surface friction coefficient
# $.root.physics.collider.restitutionref:#/$defs/__schema0 anyOf[0] number no none none Bounciness coefficient (0 = no bounce, 1 = perfect bounce)
# $.root.physics.collider.densityref:#/$defs/__schema0 anyOf[0] number no none none Mass density. Used to compute mass from collider volume
# $.root.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.
# $.root.physics.collider.offset[0]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.root.physics.collider.offset[1]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.root.physics.collider.offset[2]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.root.physics.collider.isSensorref:#/$defs/__schema0 anyOf[0] boolean no none none When true, detects overlaps without physical blocking (trigger volume)
# $.root.physics.collider.collisionGroupsref:#/$defs/__schema0 anyOf[0] number no none none Bitmask: collision layers this collider belongs to (max 16 bits)
# $.root.physics.collider.collisionFilterref:#/$defs/__schema0 anyOf[0] number no none none Bitmask: collision layers this collider interacts with (max 16 bits)
# $.root.cameraref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":false} Camera
# $.root.camera.typeref:#/$defs/__schema0 anyOf[0] enum (2) yes none {"enum":["perspective","orthographic"]} Camera projection type
# $.root.camera.fovref:#/$defs/__schema0 anyOf[0] number no none none Vertical field of view in degrees (perspective only)
# $.root.camera.nearref:#/$defs/__schema0 anyOf[0] number no none none Near clipping plane distance
# $.root.camera.farref:#/$defs/__schema0 anyOf[0] number no none none Far clipping plane distance
# $.root.camera.orthoSizeref:#/$defs/__schema0 anyOf[0] number no none none Half-height of the orthographic frustum (orthographic only)
# $.root.camera.widthref:#/$defs/__schema0 anyOf[0] number no none none Render width in pixels. Defaults to viewport width
# $.root.camera.heightref:#/$defs/__schema0 anyOf[0] number no none none Render height in pixels. Defaults to viewport height
# $.root.audioref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":false} Audio source
# $.root.audio.srcref:#/$defs/__schema0 anyOf[0] string no none none Path to audio file (WAV, MP3, OGG)
# $.root.audio.spatialref:#/$defs/__schema0 anyOf[0] boolean no none none Enable 3D spatial audio (positional sound)
# $.root.audio.volumeref:#/$defs/__schema0 anyOf[0] number no none none Playback volume 0–1
# $.root.audio.refDistanceref:#/$defs/__schema0 anyOf[0] number no none none Distance at which volume starts to attenuate (spatial only)
# $.root.audio.rolloffFactorref:#/$defs/__schema0 anyOf[0] number no none none How quickly volume attenuates with distance (spatial only)
# $.root.audio.maxDistanceref:#/$defs/__schema0 anyOf[0] number no none none Maximum distance at which sound is audible (spatial only)
# $.root.audio.loopref:#/$defs/__schema0 anyOf[0] boolean no none none Whether the audio should loop
# $.root.audio.autoplayref:#/$defs/__schema0 anyOf[0] boolean no none none Start playing automatically when the scene loads
# $.root.animationref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":false} Animation configuration
# $.root.animation.autoplayref:#/$defs/__schema0 anyOf[0] string no none none Clip name to play automatically on load
# $.root.animation.loopref:#/$defs/__schema0 anyOf[0] boolean no none none Whether the autoplay clip should loop
# $.root.animation.clipAliasesref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}} Map raw GLTF clip names to clean names
# $.root.animation.clipAliases{key}ref:#/$defs/__schema0 anyOf[0] string no none none Missing source description
# $.root.particlesref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":false} Particle system
# $.root.particles.autoDestroyref:#/$defs/__schema0 anyOf[0] boolean no none none Destroy the particle system when all particles have died
# $.root.particles.loopingref:#/$defs/__schema0 anyOf[0] boolean no none none Continuously emit particles
# $.root.particles.prewarmref:#/$defs/__schema0 anyOf[0] boolean no none none Simulate one full cycle on start so particles appear immediately
# $.root.particles.durationref:#/$defs/__schema0 anyOf[0] number no none none Total emission duration in seconds
# $.root.particles.shaperef:#/$defs/__schema0 anyOf[0] oneOf (8) no none none Emitter shape that defines where particles spawn
# $.root.particles.shaperef:#/$defs/__schema0 anyOf[0] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.root.particles.shape.typeref:#/$defs/__schema0 anyOf[0] oneOf[0] const "point" yes none {"const":"point"} Missing source description
# $.root.particles.shaperef:#/$defs/__schema0 anyOf[0] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.root.particles.shape.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] const "sphere" yes none {"const":"sphere"} Missing source description
# $.root.particles.shape.radiusref:#/$defs/__schema0 anyOf[0] oneOf[1] number no none none Sphere radius
# $.root.particles.shape.arcref:#/$defs/__schema0 anyOf[0] oneOf[1] number no none none Arc angle in radians (2π = full sphere)
# $.root.particles.shape.thicknessref:#/$defs/__schema0 anyOf[0] oneOf[1] number no none none Shell thickness 0–1 (1 = solid, 0 = surface only)
# $.root.particles.shaperef:#/$defs/__schema0 anyOf[0] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.root.particles.shape.typeref:#/$defs/__schema0 anyOf[0] oneOf[2] const "hemisphere" yes none {"const":"hemisphere"} Missing source description
# $.root.particles.shape.radiusref:#/$defs/__schema0 anyOf[0] oneOf[2] number no none none Hemisphere radius
# $.root.particles.shape.arcref:#/$defs/__schema0 anyOf[0] oneOf[2] number no none none Arc angle in radians
# $.root.particles.shape.thicknessref:#/$defs/__schema0 anyOf[0] oneOf[2] number no none none Shell thickness 0–1
# $.root.particles.shaperef:#/$defs/__schema0 anyOf[0] oneOf[3] object no none {"additionalProperties":false} Missing source description
# $.root.particles.shape.typeref:#/$defs/__schema0 anyOf[0] oneOf[3] const "cone" yes none {"const":"cone"} Missing source description
# $.root.particles.shape.radiusref:#/$defs/__schema0 anyOf[0] oneOf[3] number no none none Cone base radius
# $.root.particles.shape.arcref:#/$defs/__schema0 anyOf[0] oneOf[3] number no none none Arc angle in radians
# $.root.particles.shape.thicknessref:#/$defs/__schema0 anyOf[0] oneOf[3] number no none none Shell thickness 0–1
# $.root.particles.shape.angleref:#/$defs/__schema0 anyOf[0] oneOf[3] number no none none Cone opening angle in radians
# $.root.particles.shaperef:#/$defs/__schema0 anyOf[0] oneOf[4] object no none {"additionalProperties":false} Missing source description
# $.root.particles.shape.typeref:#/$defs/__schema0 anyOf[0] oneOf[4] const "circle" yes none {"const":"circle"} Missing source description
# $.root.particles.shape.radiusref:#/$defs/__schema0 anyOf[0] oneOf[4] number no none none Circle radius
# $.root.particles.shape.arcref:#/$defs/__schema0 anyOf[0] oneOf[4] number no none none Arc angle in radians
# $.root.particles.shape.thicknessref:#/$defs/__schema0 anyOf[0] oneOf[4] number no none none Ring thickness 0–1
# $.root.particles.shaperef:#/$defs/__schema0 anyOf[0] oneOf[5] object no none {"additionalProperties":false} Missing source description
# $.root.particles.shape.typeref:#/$defs/__schema0 anyOf[0] oneOf[5] const "donut" yes none {"const":"donut"} Missing source description
# $.root.particles.shape.radiusref:#/$defs/__schema0 anyOf[0] oneOf[5] number no none none Donut major radius
# $.root.particles.shape.arcref:#/$defs/__schema0 anyOf[0] oneOf[5] number no none none Arc angle in radians
# $.root.particles.shape.thicknessref:#/$defs/__schema0 anyOf[0] oneOf[5] number no none none Ring thickness 0–1
# $.root.particles.shape.donutRadiusref:#/$defs/__schema0 anyOf[0] oneOf[5] number no none none Donut tube (minor) radius
# $.root.particles.shaperef:#/$defs/__schema0 anyOf[0] oneOf[6] object no none {"additionalProperties":false} Missing source description
# $.root.particles.shape.typeref:#/$defs/__schema0 anyOf[0] oneOf[6] const "rectangle" yes none {"const":"rectangle"} Missing source description
# $.root.particles.shape.widthref:#/$defs/__schema0 anyOf[0] oneOf[6] number no none none Rectangle width
# $.root.particles.shape.heightref:#/$defs/__schema0 anyOf[0] oneOf[6] number no none none Rectangle height
# $.root.particles.shape.thicknessref:#/$defs/__schema0 anyOf[0] oneOf[6] number no none none Extrusion depth 0–1
# $.root.particles.shaperef:#/$defs/__schema0 anyOf[0] oneOf[7] object no none {"additionalProperties":false} Missing source description
# $.root.particles.shape.typeref:#/$defs/__schema0 anyOf[0] oneOf[7] const "grid" yes none {"const":"grid"} Missing source description
# $.root.particles.shape.widthref:#/$defs/__schema0 anyOf[0] oneOf[7] number no none none Grid total width
# $.root.particles.shape.heightref:#/$defs/__schema0 anyOf[0] oneOf[7] number no none none Grid total height
# $.root.particles.shape.columnref:#/$defs/__schema0 anyOf[0] oneOf[7] integer no none {"minimum":-9007199254740991,"maximum":9007199254740991} Number of columns
# $.root.particles.shape.rowref:#/$defs/__schema0 anyOf[0] oneOf[7] integer no none {"minimum":-9007199254740991,"maximum":9007199254740991} Number of rows
# $.root.particles.startLiferef:#/$defs/__schema0 anyOf[0] oneOf (3) no none none Initial particle lifetime in seconds
# $.root.particles.startLiferef:#/$defs/__schema0 anyOf[0] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startLife.typeref:#/$defs/__schema0 anyOf[0] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.startLife.valueref:#/$defs/__schema0 anyOf[0] oneOf[0] number yes none none Missing source description
# $.root.particles.startLiferef:#/$defs/__schema0 anyOf[0] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startLife.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.startLife.aref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.root.particles.startLife.bref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.root.particles.startLiferef:#/$defs/__schema0 anyOf[0] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startLife.typeref:#/$defs/__schema0 anyOf[0] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.startLife.functionsref:#/$defs/__schema0 anyOf[0] oneOf[2] array yes none none Missing source description
# $.root.particles.startLife.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startLife.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startLife.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.startLife.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.startLife.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.startLife.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.startLife.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.startSpeedref:#/$defs/__schema0 anyOf[0] oneOf (3) no none none Initial particle speed
# $.root.particles.startSpeedref:#/$defs/__schema0 anyOf[0] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startSpeed.typeref:#/$defs/__schema0 anyOf[0] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.startSpeed.valueref:#/$defs/__schema0 anyOf[0] oneOf[0] number yes none none Missing source description
# $.root.particles.startSpeedref:#/$defs/__schema0 anyOf[0] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startSpeed.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.startSpeed.aref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.root.particles.startSpeed.bref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.root.particles.startSpeedref:#/$defs/__schema0 anyOf[0] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startSpeed.typeref:#/$defs/__schema0 anyOf[0] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.startSpeed.functionsref:#/$defs/__schema0 anyOf[0] oneOf[2] array yes none none Missing source description
# $.root.particles.startSpeed.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startSpeed.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startSpeed.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.startSpeed.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.startSpeed.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.startSpeed.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.startSpeed.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.startSizeref:#/$defs/__schema0 anyOf[0] oneOf (3) no none none Initial particle size
# $.root.particles.startSizeref:#/$defs/__schema0 anyOf[0] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startSize.typeref:#/$defs/__schema0 anyOf[0] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.startSize.valueref:#/$defs/__schema0 anyOf[0] oneOf[0] number yes none none Missing source description
# $.root.particles.startSizeref:#/$defs/__schema0 anyOf[0] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startSize.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.startSize.aref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.root.particles.startSize.bref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.root.particles.startSizeref:#/$defs/__schema0 anyOf[0] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startSize.typeref:#/$defs/__schema0 anyOf[0] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.startSize.functionsref:#/$defs/__schema0 anyOf[0] oneOf[2] array yes none none Missing source description
# $.root.particles.startSize.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startSize.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startSize.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.startSize.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.startSize.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.startSize.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.startSize.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.startRotationref:#/$defs/__schema0 anyOf[0] oneOf (3) no none none Initial particle rotation in radians
# $.root.particles.startRotationref:#/$defs/__schema0 anyOf[0] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startRotation.typeref:#/$defs/__schema0 anyOf[0] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.startRotation.valueref:#/$defs/__schema0 anyOf[0] oneOf[0] number yes none none Missing source description
# $.root.particles.startRotationref:#/$defs/__schema0 anyOf[0] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startRotation.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.startRotation.aref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.root.particles.startRotation.bref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.root.particles.startRotationref:#/$defs/__schema0 anyOf[0] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startRotation.typeref:#/$defs/__schema0 anyOf[0] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.startRotation.functionsref:#/$defs/__schema0 anyOf[0] oneOf[2] array yes none none Missing source description
# $.root.particles.startRotation.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startRotation.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startRotation.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.startRotation.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.startRotation.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.startRotation.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.startRotation.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.startColorref:#/$defs/__schema0 anyOf[0] oneOf (4) no none none Initial particle color
# $.root.particles.startColorref:#/$defs/__schema0 anyOf[0] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.typeref:#/$defs/__schema0 anyOf[0] oneOf[0] const "ConstantColor" yes none {"const":"ConstantColor"} Missing source description
# $.root.particles.startColor.colorref:#/$defs/__schema0 anyOf[0] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.color.rref:#/$defs/__schema0 anyOf[0] oneOf[0] number yes none none Missing source description
# $.root.particles.startColor.color.gref:#/$defs/__schema0 anyOf[0] oneOf[0] number yes none none Missing source description
# $.root.particles.startColor.color.bref:#/$defs/__schema0 anyOf[0] oneOf[0] number yes none none Missing source description
# $.root.particles.startColor.color.aref:#/$defs/__schema0 anyOf[0] oneOf[0] number yes none none Missing source description
# $.root.particles.startColorref:#/$defs/__schema0 anyOf[0] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] const "ColorRange" yes none {"const":"ColorRange"} Missing source description
# $.root.particles.startColor.aref:#/$defs/__schema0 anyOf[0] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.a.rref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.root.particles.startColor.a.gref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.root.particles.startColor.a.bref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.root.particles.startColor.a.aref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.root.particles.startColor.bref:#/$defs/__schema0 anyOf[0] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.b.rref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.root.particles.startColor.b.gref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.root.particles.startColor.b.bref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.root.particles.startColor.b.aref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.root.particles.startColorref:#/$defs/__schema0 anyOf[0] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.typeref:#/$defs/__schema0 anyOf[0] oneOf[2] const "Gradient" yes none {"const":"Gradient"} Missing source description
# $.root.particles.startColor.colorref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.color.typeref:#/$defs/__schema0 anyOf[0] oneOf[2] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.root.particles.startColor.color.subTyperef:#/$defs/__schema0 anyOf[0] oneOf[2] const "Color" yes none {"const":"Color"} Missing source description
# $.root.particles.startColor.color.keysref:#/$defs/__schema0 anyOf[0] oneOf[2] array yes none none Missing source description
# $.root.particles.startColor.color.keys[]ref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.color.keys[].valueref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.color.keys[].value.rref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.startColor.color.keys[].value.gref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.startColor.color.keys[].value.bref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.startColor.color.keys[].posref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.startColor.alpharef:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.alpha.typeref:#/$defs/__schema0 anyOf[0] oneOf[2] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.root.particles.startColor.alpha.subTyperef:#/$defs/__schema0 anyOf[0] oneOf[2] const "Number" yes none {"const":"Number"} Missing source description
# $.root.particles.startColor.alpha.keysref:#/$defs/__schema0 anyOf[0] oneOf[2] array yes none none Missing source description
# $.root.particles.startColor.alpha.keys[]ref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.alpha.keys[].valueref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.startColor.alpha.keys[].posref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.startColorref:#/$defs/__schema0 anyOf[0] oneOf[3] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.typeref:#/$defs/__schema0 anyOf[0] oneOf[3] const "RandomColorBetweenGradient" yes none {"const":"RandomColorBetweenGradient"} Missing source description
# $.root.particles.startColor.gradient1ref:#/$defs/__schema0 anyOf[0] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.gradient1.typeref:#/$defs/__schema0 anyOf[0] oneOf[3] const "Gradient" yes none {"const":"Gradient"} Missing source description
# $.root.particles.startColor.gradient1.colorref:#/$defs/__schema0 anyOf[0] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.gradient1.color.typeref:#/$defs/__schema0 anyOf[0] oneOf[3] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.root.particles.startColor.gradient1.color.subTyperef:#/$defs/__schema0 anyOf[0] oneOf[3] const "Color" yes none {"const":"Color"} Missing source description
# $.root.particles.startColor.gradient1.color.keysref:#/$defs/__schema0 anyOf[0] oneOf[3] array yes none none Missing source description
# $.root.particles.startColor.gradient1.color.keys[]ref:#/$defs/__schema0 anyOf[0] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.gradient1.color.keys[].valueref:#/$defs/__schema0 anyOf[0] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.gradient1.color.keys[].value.rref:#/$defs/__schema0 anyOf[0] oneOf[3] number yes none none Missing source description
# $.root.particles.startColor.gradient1.color.keys[].value.gref:#/$defs/__schema0 anyOf[0] oneOf[3] number yes none none Missing source description
# $.root.particles.startColor.gradient1.color.keys[].value.bref:#/$defs/__schema0 anyOf[0] oneOf[3] number yes none none Missing source description
# $.root.particles.startColor.gradient1.color.keys[].posref:#/$defs/__schema0 anyOf[0] oneOf[3] number yes none none Missing source description
# $.root.particles.startColor.gradient1.alpharef:#/$defs/__schema0 anyOf[0] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.gradient1.alpha.typeref:#/$defs/__schema0 anyOf[0] oneOf[3] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.root.particles.startColor.gradient1.alpha.subTyperef:#/$defs/__schema0 anyOf[0] oneOf[3] const "Number" yes none {"const":"Number"} Missing source description
# $.root.particles.startColor.gradient1.alpha.keysref:#/$defs/__schema0 anyOf[0] oneOf[3] array yes none none Missing source description
# $.root.particles.startColor.gradient1.alpha.keys[]ref:#/$defs/__schema0 anyOf[0] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.gradient1.alpha.keys[].valueref:#/$defs/__schema0 anyOf[0] oneOf[3] number yes none none Missing source description
# $.root.particles.startColor.gradient1.alpha.keys[].posref:#/$defs/__schema0 anyOf[0] oneOf[3] number yes none none Missing source description
# $.root.particles.startColor.gradient2ref:#/$defs/__schema0 anyOf[0] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.gradient2.typeref:#/$defs/__schema0 anyOf[0] oneOf[3] const "Gradient" yes none {"const":"Gradient"} Missing source description
# $.root.particles.startColor.gradient2.colorref:#/$defs/__schema0 anyOf[0] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.gradient2.color.typeref:#/$defs/__schema0 anyOf[0] oneOf[3] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.root.particles.startColor.gradient2.color.subTyperef:#/$defs/__schema0 anyOf[0] oneOf[3] const "Color" yes none {"const":"Color"} Missing source description
# $.root.particles.startColor.gradient2.color.keysref:#/$defs/__schema0 anyOf[0] oneOf[3] array yes none none Missing source description
# $.root.particles.startColor.gradient2.color.keys[]ref:#/$defs/__schema0 anyOf[0] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.gradient2.color.keys[].valueref:#/$defs/__schema0 anyOf[0] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.gradient2.color.keys[].value.rref:#/$defs/__schema0 anyOf[0] oneOf[3] number yes none none Missing source description
# $.root.particles.startColor.gradient2.color.keys[].value.gref:#/$defs/__schema0 anyOf[0] oneOf[3] number yes none none Missing source description
# $.root.particles.startColor.gradient2.color.keys[].value.bref:#/$defs/__schema0 anyOf[0] oneOf[3] number yes none none Missing source description
# $.root.particles.startColor.gradient2.color.keys[].posref:#/$defs/__schema0 anyOf[0] oneOf[3] number yes none none Missing source description
# $.root.particles.startColor.gradient2.alpharef:#/$defs/__schema0 anyOf[0] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.gradient2.alpha.typeref:#/$defs/__schema0 anyOf[0] oneOf[3] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.root.particles.startColor.gradient2.alpha.subTyperef:#/$defs/__schema0 anyOf[0] oneOf[3] const "Number" yes none {"const":"Number"} Missing source description
# $.root.particles.startColor.gradient2.alpha.keysref:#/$defs/__schema0 anyOf[0] oneOf[3] array yes none none Missing source description
# $.root.particles.startColor.gradient2.alpha.keys[]ref:#/$defs/__schema0 anyOf[0] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.gradient2.alpha.keys[].valueref:#/$defs/__schema0 anyOf[0] oneOf[3] number yes none none Missing source description
# $.root.particles.startColor.gradient2.alpha.keys[].posref:#/$defs/__schema0 anyOf[0] oneOf[3] number yes none none Missing source description
# $.root.particles.startLengthref:#/$defs/__schema0 anyOf[0] oneOf (3) no none none Initial trail length (trail render mode only)
# $.root.particles.startLengthref:#/$defs/__schema0 anyOf[0] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startLength.typeref:#/$defs/__schema0 anyOf[0] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.startLength.valueref:#/$defs/__schema0 anyOf[0] oneOf[0] number yes none none Missing source description
# $.root.particles.startLengthref:#/$defs/__schema0 anyOf[0] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startLength.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.startLength.aref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.root.particles.startLength.bref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.root.particles.startLengthref:#/$defs/__schema0 anyOf[0] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startLength.typeref:#/$defs/__schema0 anyOf[0] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.startLength.functionsref:#/$defs/__schema0 anyOf[0] oneOf[2] array yes none none Missing source description
# $.root.particles.startLength.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startLength.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startLength.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.startLength.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.startLength.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.startLength.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.startLength.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.startTileIndexref:#/$defs/__schema0 anyOf[0] oneOf (3) no none none Initial sprite sheet tile index
# $.root.particles.startTileIndexref:#/$defs/__schema0 anyOf[0] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startTileIndex.typeref:#/$defs/__schema0 anyOf[0] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.startTileIndex.valueref:#/$defs/__schema0 anyOf[0] oneOf[0] number yes none none Missing source description
# $.root.particles.startTileIndexref:#/$defs/__schema0 anyOf[0] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startTileIndex.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.startTileIndex.aref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.root.particles.startTileIndex.bref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.root.particles.startTileIndexref:#/$defs/__schema0 anyOf[0] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startTileIndex.typeref:#/$defs/__schema0 anyOf[0] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.startTileIndex.functionsref:#/$defs/__schema0 anyOf[0] oneOf[2] array yes none none Missing source description
# $.root.particles.startTileIndex.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startTileIndex.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startTileIndex.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.startTileIndex.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.startTileIndex.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.startTileIndex.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.startTileIndex.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.emissionOverTimeref:#/$defs/__schema0 anyOf[0] oneOf (3) no none none Particles emitted per second
# $.root.particles.emissionOverTimeref:#/$defs/__schema0 anyOf[0] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.root.particles.emissionOverTime.typeref:#/$defs/__schema0 anyOf[0] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.emissionOverTime.valueref:#/$defs/__schema0 anyOf[0] oneOf[0] number yes none none Missing source description
# $.root.particles.emissionOverTimeref:#/$defs/__schema0 anyOf[0] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.root.particles.emissionOverTime.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.emissionOverTime.aref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.root.particles.emissionOverTime.bref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.root.particles.emissionOverTimeref:#/$defs/__schema0 anyOf[0] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.root.particles.emissionOverTime.typeref:#/$defs/__schema0 anyOf[0] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.emissionOverTime.functionsref:#/$defs/__schema0 anyOf[0] oneOf[2] array yes none none Missing source description
# $.root.particles.emissionOverTime.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.emissionOverTime.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.emissionOverTime.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.emissionOverTime.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.emissionOverTime.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.emissionOverTime.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.emissionOverTime.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.emissionOverDistanceref:#/$defs/__schema0 anyOf[0] oneOf (3) no none none Particles emitted per unit of emitter movement
# $.root.particles.emissionOverDistanceref:#/$defs/__schema0 anyOf[0] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.root.particles.emissionOverDistance.typeref:#/$defs/__schema0 anyOf[0] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.emissionOverDistance.valueref:#/$defs/__schema0 anyOf[0] oneOf[0] number yes none none Missing source description
# $.root.particles.emissionOverDistanceref:#/$defs/__schema0 anyOf[0] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.root.particles.emissionOverDistance.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.emissionOverDistance.aref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.root.particles.emissionOverDistance.bref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.root.particles.emissionOverDistanceref:#/$defs/__schema0 anyOf[0] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.root.particles.emissionOverDistance.typeref:#/$defs/__schema0 anyOf[0] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.emissionOverDistance.functionsref:#/$defs/__schema0 anyOf[0] oneOf[2] array yes none none Missing source description
# $.root.particles.emissionOverDistance.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.emissionOverDistance.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.emissionOverDistance.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.emissionOverDistance.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.emissionOverDistance.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.emissionOverDistance.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.emissionOverDistance.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.emissionBurstsref:#/$defs/__schema0 anyOf[0] array no none none Timed burst emissions
# $.root.particles.emissionBursts[]ref:#/$defs/__schema0 anyOf[0] object yes none {"additionalProperties":false} Timed particle burst
# $.root.particles.emissionBursts[].timeref:#/$defs/__schema0 anyOf[0] number yes none none Time offset in seconds within the emission cycle
# $.root.particles.emissionBursts[].countref:#/$defs/__schema0 anyOf[0] oneOf (3) yes none none Number of particles to emit
# $.root.particles.emissionBursts[].countref:#/$defs/__schema0 anyOf[0] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.emissionBursts[].count.typeref:#/$defs/__schema0 anyOf[0] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.emissionBursts[].count.valueref:#/$defs/__schema0 anyOf[0] oneOf[0] number yes none none Missing source description
# $.root.particles.emissionBursts[].countref:#/$defs/__schema0 anyOf[0] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.emissionBursts[].count.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.emissionBursts[].count.aref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.root.particles.emissionBursts[].count.bref:#/$defs/__schema0 anyOf[0] oneOf[1] number yes none none Missing source description
# $.root.particles.emissionBursts[].countref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.emissionBursts[].count.typeref:#/$defs/__schema0 anyOf[0] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.emissionBursts[].count.functionsref:#/$defs/__schema0 anyOf[0] oneOf[2] array yes none none Missing source description
# $.root.particles.emissionBursts[].count.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.emissionBursts[].count.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.emissionBursts[].count.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.emissionBursts[].count.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.emissionBursts[].count.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.emissionBursts[].count.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.emissionBursts[].count.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.emissionBursts[].cycleref:#/$defs/__schema0 anyOf[0] number no none none Burst repeat interval in seconds
# $.root.particles.emissionBursts[].intervalref:#/$defs/__schema0 anyOf[0] number no none none Delay between burst repetitions
# $.root.particles.emissionBursts[].probabilityref:#/$defs/__schema0 anyOf[0] number no none none Chance of burst firing (0–1)
# $.root.particles.behaviorsref:#/$defs/__schema0 anyOf[0] array no none none Behaviors applied to particles over their lifetime
# $.root.particles.behaviors[]ref:#/$defs/__schema0 anyOf[0] oneOf (14) yes none none Particle behavior applied over lifetime
# $.root.particles.behaviors[]ref:#/$defs/__schema0 anyOf[0] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].typeref:#/$defs/__schema0 anyOf[0] oneOf[0] const "ApplyForce" yes none {"const":"ApplyForce"} Missing source description
# $.root.particles.behaviors[].directionref:#/$defs/__schema0 anyOf[0] oneOf[0] array yes none none Force direction vector
# $.root.particles.behaviors[].direction[0]ref:#/$defs/__schema0 anyOf[0] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].direction[1]ref:#/$defs/__schema0 anyOf[0] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].direction[2]ref:#/$defs/__schema0 anyOf[0] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].magnituderef:#/$defs/__schema0 anyOf[0] oneOf[0] oneOf (3) yes none none Force magnitude
# $.root.particles.behaviors[].magnituderef:#/$defs/__schema0 anyOf[0] oneOf[0] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].magnitude.typeref:#/$defs/__schema0 anyOf[0] oneOf[0] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.behaviors[].magnitude.valueref:#/$defs/__schema0 anyOf[0] oneOf[0] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].magnituderef:#/$defs/__schema0 anyOf[0] oneOf[0] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].magnitude.typeref:#/$defs/__schema0 anyOf[0] oneOf[0] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.behaviors[].magnitude.aref:#/$defs/__schema0 anyOf[0] oneOf[0] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].magnitude.bref:#/$defs/__schema0 anyOf[0] oneOf[0] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].magnituderef:#/$defs/__schema0 anyOf[0] oneOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].magnitude.typeref:#/$defs/__schema0 anyOf[0] oneOf[0] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.behaviors[].magnitude.functionsref:#/$defs/__schema0 anyOf[0] oneOf[0] oneOf[2] array yes none none Missing source description
# $.root.particles.behaviors[].magnitude.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].magnitude.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].magnitude.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].magnitude.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].magnitude.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].magnitude.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].magnitude.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[]ref:#/$defs/__schema0 anyOf[0] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].typeref:#/$defs/__schema0 anyOf[0] oneOf[1] const "ColorOverLife" yes none {"const":"ColorOverLife"} Missing source description
# $.root.particles.behaviors[].colorref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf (4) yes none none Color curve over particle lifetime
# $.root.particles.behaviors[].colorref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[0] const "ConstantColor" yes none {"const":"ConstantColor"} Missing source description
# $.root.particles.behaviors[].color.colorref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.color.rref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].color.color.gref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].color.color.bref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].color.color.aref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].colorref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[1] const "ColorRange" yes none {"const":"ColorRange"} Missing source description
# $.root.particles.behaviors[].color.aref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.a.rref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].color.a.gref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].color.a.bref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].color.a.aref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].color.bref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.b.rref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].color.b.gref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].color.b.bref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].color.b.aref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].colorref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[2] const "Gradient" yes none {"const":"Gradient"} Missing source description
# $.root.particles.behaviors[].color.colorref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.color.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[2] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.root.particles.behaviors[].color.color.subTyperef:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[2] const "Color" yes none {"const":"Color"} Missing source description
# $.root.particles.behaviors[].color.color.keysref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[2] array yes none none Missing source description
# $.root.particles.behaviors[].color.color.keys[]ref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.color.keys[].valueref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.color.keys[].value.rref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].color.color.keys[].value.gref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].color.color.keys[].value.bref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].color.color.keys[].posref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].color.alpharef:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.alpha.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[2] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.root.particles.behaviors[].color.alpha.subTyperef:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[2] const "Number" yes none {"const":"Number"} Missing source description
# $.root.particles.behaviors[].color.alpha.keysref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[2] array yes none none Missing source description
# $.root.particles.behaviors[].color.alpha.keys[]ref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.alpha.keys[].valueref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].color.alpha.keys[].posref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].colorref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] const "RandomColorBetweenGradient" yes none {"const":"RandomColorBetweenGradient"} Missing source description
# $.root.particles.behaviors[].color.gradient1ref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.gradient1.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] const "Gradient" yes none {"const":"Gradient"} Missing source description
# $.root.particles.behaviors[].color.gradient1.colorref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.gradient1.color.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.root.particles.behaviors[].color.gradient1.color.subTyperef:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] const "Color" yes none {"const":"Color"} Missing source description
# $.root.particles.behaviors[].color.gradient1.color.keysref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] array yes none none Missing source description
# $.root.particles.behaviors[].color.gradient1.color.keys[]ref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.gradient1.color.keys[].valueref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.gradient1.color.keys[].value.rref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] number yes none none Missing source description
# $.root.particles.behaviors[].color.gradient1.color.keys[].value.gref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] number yes none none Missing source description
# $.root.particles.behaviors[].color.gradient1.color.keys[].value.bref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] number yes none none Missing source description
# $.root.particles.behaviors[].color.gradient1.color.keys[].posref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] number yes none none Missing source description
# $.root.particles.behaviors[].color.gradient1.alpharef:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.gradient1.alpha.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.root.particles.behaviors[].color.gradient1.alpha.subTyperef:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] const "Number" yes none {"const":"Number"} Missing source description
# $.root.particles.behaviors[].color.gradient1.alpha.keysref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] array yes none none Missing source description
# $.root.particles.behaviors[].color.gradient1.alpha.keys[]ref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.gradient1.alpha.keys[].valueref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] number yes none none Missing source description
# $.root.particles.behaviors[].color.gradient1.alpha.keys[].posref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] number yes none none Missing source description
# $.root.particles.behaviors[].color.gradient2ref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.gradient2.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] const "Gradient" yes none {"const":"Gradient"} Missing source description
# $.root.particles.behaviors[].color.gradient2.colorref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.gradient2.color.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.root.particles.behaviors[].color.gradient2.color.subTyperef:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] const "Color" yes none {"const":"Color"} Missing source description
# $.root.particles.behaviors[].color.gradient2.color.keysref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] array yes none none Missing source description
# $.root.particles.behaviors[].color.gradient2.color.keys[]ref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.gradient2.color.keys[].valueref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.gradient2.color.keys[].value.rref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] number yes none none Missing source description
# $.root.particles.behaviors[].color.gradient2.color.keys[].value.gref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] number yes none none Missing source description
# $.root.particles.behaviors[].color.gradient2.color.keys[].value.bref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] number yes none none Missing source description
# $.root.particles.behaviors[].color.gradient2.color.keys[].posref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] number yes none none Missing source description
# $.root.particles.behaviors[].color.gradient2.alpharef:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.gradient2.alpha.typeref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.root.particles.behaviors[].color.gradient2.alpha.subTyperef:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] const "Number" yes none {"const":"Number"} Missing source description
# $.root.particles.behaviors[].color.gradient2.alpha.keysref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] array yes none none Missing source description
# $.root.particles.behaviors[].color.gradient2.alpha.keys[]ref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.gradient2.alpha.keys[].valueref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] number yes none none Missing source description
# $.root.particles.behaviors[].color.gradient2.alpha.keys[].posref:#/$defs/__schema0 anyOf[0] oneOf[1] oneOf[3] number yes none none Missing source description
# $.root.particles.behaviors[]ref:#/$defs/__schema0 anyOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].typeref:#/$defs/__schema0 anyOf[0] oneOf[2] const "SizeOverLife" yes none {"const":"SizeOverLife"} Missing source description
# $.root.particles.behaviors[].sizeref:#/$defs/__schema0 anyOf[0] oneOf[2] oneOf (3) yes none none Size curve over particle lifetime
# $.root.particles.behaviors[].sizeref:#/$defs/__schema0 anyOf[0] oneOf[2] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].size.typeref:#/$defs/__schema0 anyOf[0] oneOf[2] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.behaviors[].size.valueref:#/$defs/__schema0 anyOf[0] oneOf[2] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].sizeref:#/$defs/__schema0 anyOf[0] oneOf[2] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].size.typeref:#/$defs/__schema0 anyOf[0] oneOf[2] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.behaviors[].size.aref:#/$defs/__schema0 anyOf[0] oneOf[2] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].size.bref:#/$defs/__schema0 anyOf[0] oneOf[2] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].sizeref:#/$defs/__schema0 anyOf[0] oneOf[2] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].size.typeref:#/$defs/__schema0 anyOf[0] oneOf[2] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.behaviors[].size.functionsref:#/$defs/__schema0 anyOf[0] oneOf[2] oneOf[2] array yes none none Missing source description
# $.root.particles.behaviors[].size.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[2] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].size.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[2] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].size.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[2] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].size.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[2] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].size.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[2] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].size.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[2] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].size.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[2] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[]ref:#/$defs/__schema0 anyOf[0] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].typeref:#/$defs/__schema0 anyOf[0] oneOf[3] const "SpeedOverLife" yes none {"const":"SpeedOverLife"} Missing source description
# $.root.particles.behaviors[].speedref:#/$defs/__schema0 anyOf[0] oneOf[3] oneOf (3) yes none none Speed multiplier curve over lifetime
# $.root.particles.behaviors[].speedref:#/$defs/__schema0 anyOf[0] oneOf[3] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].speed.typeref:#/$defs/__schema0 anyOf[0] oneOf[3] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.behaviors[].speed.valueref:#/$defs/__schema0 anyOf[0] oneOf[3] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].speedref:#/$defs/__schema0 anyOf[0] oneOf[3] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].speed.typeref:#/$defs/__schema0 anyOf[0] oneOf[3] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.behaviors[].speed.aref:#/$defs/__schema0 anyOf[0] oneOf[3] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].speed.bref:#/$defs/__schema0 anyOf[0] oneOf[3] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].speedref:#/$defs/__schema0 anyOf[0] oneOf[3] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].speed.typeref:#/$defs/__schema0 anyOf[0] oneOf[3] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.behaviors[].speed.functionsref:#/$defs/__schema0 anyOf[0] oneOf[3] oneOf[2] array yes none none Missing source description
# $.root.particles.behaviors[].speed.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[3] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].speed.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[3] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].speed.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[3] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].speed.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[3] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].speed.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[3] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].speed.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[3] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].speed.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[3] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[]ref:#/$defs/__schema0 anyOf[0] oneOf[4] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].typeref:#/$defs/__schema0 anyOf[0] oneOf[4] const "RotationOverLife" yes none {"const":"RotationOverLife"} Missing source description
# $.root.particles.behaviors[].angularVelocityref:#/$defs/__schema0 anyOf[0] oneOf[4] oneOf (3) yes none none Angular velocity in radians/sec
# $.root.particles.behaviors[].angularVelocityref:#/$defs/__schema0 anyOf[0] oneOf[4] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].angularVelocity.typeref:#/$defs/__schema0 anyOf[0] oneOf[4] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.behaviors[].angularVelocity.valueref:#/$defs/__schema0 anyOf[0] oneOf[4] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].angularVelocityref:#/$defs/__schema0 anyOf[0] oneOf[4] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].angularVelocity.typeref:#/$defs/__schema0 anyOf[0] oneOf[4] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.behaviors[].angularVelocity.aref:#/$defs/__schema0 anyOf[0] oneOf[4] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].angularVelocity.bref:#/$defs/__schema0 anyOf[0] oneOf[4] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].angularVelocityref:#/$defs/__schema0 anyOf[0] oneOf[4] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].angularVelocity.typeref:#/$defs/__schema0 anyOf[0] oneOf[4] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.behaviors[].angularVelocity.functionsref:#/$defs/__schema0 anyOf[0] oneOf[4] oneOf[2] array yes none none Missing source description
# $.root.particles.behaviors[].angularVelocity.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[4] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].angularVelocity.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[4] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].angularVelocity.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[4] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].angularVelocity.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[4] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].angularVelocity.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[4] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].angularVelocity.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[4] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].angularVelocity.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[4] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[]ref:#/$defs/__schema0 anyOf[0] oneOf[5] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].typeref:#/$defs/__schema0 anyOf[0] oneOf[5] const "ForceOverLife" yes none {"const":"ForceOverLife"} Missing source description
# $.root.particles.behaviors[].xref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf (3) yes none none Force along X axis over lifetime
# $.root.particles.behaviors[].xref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].x.typeref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.behaviors[].x.valueref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].xref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].x.typeref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.behaviors[].x.aref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].x.bref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].xref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].x.typeref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.behaviors[].x.functionsref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] array yes none none Missing source description
# $.root.particles.behaviors[].x.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].x.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].x.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].x.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].x.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].x.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].x.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].yref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf (3) yes none none Force along Y axis over lifetime
# $.root.particles.behaviors[].yref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].y.typeref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.behaviors[].y.valueref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].yref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].y.typeref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.behaviors[].y.aref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].y.bref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].yref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].y.typeref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.behaviors[].y.functionsref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] array yes none none Missing source description
# $.root.particles.behaviors[].y.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].y.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].y.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].y.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].y.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].y.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].y.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].zref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf (3) yes none none Force along Z axis over lifetime
# $.root.particles.behaviors[].zref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].z.typeref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.behaviors[].z.valueref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].zref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].z.typeref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.behaviors[].z.aref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].z.bref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].zref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].z.typeref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.behaviors[].z.functionsref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] array yes none none Missing source description
# $.root.particles.behaviors[].z.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].z.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].z.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].z.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].z.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].z.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].z.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[5] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[]ref:#/$defs/__schema0 anyOf[0] oneOf[6] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].typeref:#/$defs/__schema0 anyOf[0] oneOf[6] const "OrbitOverLife" yes none {"const":"OrbitOverLife"} Missing source description
# $.root.particles.behaviors[].orbitSpeedref:#/$defs/__schema0 anyOf[0] oneOf[6] oneOf (3) yes none none Orbit speed over lifetime
# $.root.particles.behaviors[].orbitSpeedref:#/$defs/__schema0 anyOf[0] oneOf[6] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].orbitSpeed.typeref:#/$defs/__schema0 anyOf[0] oneOf[6] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.behaviors[].orbitSpeed.valueref:#/$defs/__schema0 anyOf[0] oneOf[6] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].orbitSpeedref:#/$defs/__schema0 anyOf[0] oneOf[6] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].orbitSpeed.typeref:#/$defs/__schema0 anyOf[0] oneOf[6] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.behaviors[].orbitSpeed.aref:#/$defs/__schema0 anyOf[0] oneOf[6] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].orbitSpeed.bref:#/$defs/__schema0 anyOf[0] oneOf[6] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].orbitSpeedref:#/$defs/__schema0 anyOf[0] oneOf[6] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].orbitSpeed.typeref:#/$defs/__schema0 anyOf[0] oneOf[6] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.behaviors[].orbitSpeed.functionsref:#/$defs/__schema0 anyOf[0] oneOf[6] oneOf[2] array yes none none Missing source description
# $.root.particles.behaviors[].orbitSpeed.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[6] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].orbitSpeed.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[6] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].orbitSpeed.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[6] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].orbitSpeed.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[6] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].orbitSpeed.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[6] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].orbitSpeed.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[6] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].orbitSpeed.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[6] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].axisref:#/$defs/__schema0 anyOf[0] oneOf[6] array no none none Orbit axis. Defaults to [0, 1, 0]
# $.root.particles.behaviors[].axis[0]ref:#/$defs/__schema0 anyOf[0] oneOf[6] number yes none none Missing source description
# $.root.particles.behaviors[].axis[1]ref:#/$defs/__schema0 anyOf[0] oneOf[6] number yes none none Missing source description
# $.root.particles.behaviors[].axis[2]ref:#/$defs/__schema0 anyOf[0] oneOf[6] number yes none none Missing source description
# $.root.particles.behaviors[]ref:#/$defs/__schema0 anyOf[0] oneOf[7] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].typeref:#/$defs/__schema0 anyOf[0] oneOf[7] const "Noise" yes none {"const":"Noise"} Missing source description
# $.root.particles.behaviors[].frequencyref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf (3) yes none none Noise frequency
# $.root.particles.behaviors[].frequencyref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].frequency.typeref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.behaviors[].frequency.valueref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].frequencyref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].frequency.typeref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.behaviors[].frequency.aref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].frequency.bref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].frequencyref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].frequency.typeref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.behaviors[].frequency.functionsref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] array yes none none Missing source description
# $.root.particles.behaviors[].frequency.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].frequency.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].frequency.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].frequency.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].frequency.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].frequency.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].frequency.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].powerref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf (3) yes none none Noise amplitude
# $.root.particles.behaviors[].powerref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].power.typeref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.behaviors[].power.valueref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].powerref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].power.typeref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.behaviors[].power.aref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].power.bref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].powerref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].power.typeref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.behaviors[].power.functionsref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] array yes none none Missing source description
# $.root.particles.behaviors[].power.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].power.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].power.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].power.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].power.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].power.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].power.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].positionAmountref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf (3) no none none Position displacement amount
# $.root.particles.behaviors[].positionAmountref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].positionAmount.typeref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.behaviors[].positionAmount.valueref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].positionAmountref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].positionAmount.typeref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.behaviors[].positionAmount.aref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].positionAmount.bref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].positionAmountref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].positionAmount.typeref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.behaviors[].positionAmount.functionsref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] array yes none none Missing source description
# $.root.particles.behaviors[].positionAmount.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].positionAmount.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].positionAmount.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].positionAmount.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].positionAmount.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].positionAmount.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].positionAmount.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].rotationAmountref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf (3) no none none Rotation displacement amount
# $.root.particles.behaviors[].rotationAmountref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].rotationAmount.typeref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.behaviors[].rotationAmount.valueref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].rotationAmountref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].rotationAmount.typeref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.behaviors[].rotationAmount.aref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].rotationAmount.bref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].rotationAmountref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].rotationAmount.typeref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.behaviors[].rotationAmount.functionsref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] array yes none none Missing source description
# $.root.particles.behaviors[].rotationAmount.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].rotationAmount.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].rotationAmount.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].rotationAmount.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].rotationAmount.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].rotationAmount.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].rotationAmount.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[7] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[]ref:#/$defs/__schema0 anyOf[0] oneOf[8] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].typeref:#/$defs/__schema0 anyOf[0] oneOf[8] const "TurbulenceField" yes none {"const":"TurbulenceField"} Missing source description
# $.root.particles.behaviors[].scaleref:#/$defs/__schema0 anyOf[0] oneOf[8] array yes none none Turbulence field scale
# $.root.particles.behaviors[].scale[0]ref:#/$defs/__schema0 anyOf[0] oneOf[8] number yes none none Missing source description
# $.root.particles.behaviors[].scale[1]ref:#/$defs/__schema0 anyOf[0] oneOf[8] number yes none none Missing source description
# $.root.particles.behaviors[].scale[2]ref:#/$defs/__schema0 anyOf[0] oneOf[8] number yes none none Missing source description
# $.root.particles.behaviors[].octavesref:#/$defs/__schema0 anyOf[0] oneOf[8] integer yes none {"minimum":-9007199254740991,"maximum":9007199254740991} Noise octave count
# $.root.particles.behaviors[].velocityMultiplierref:#/$defs/__schema0 anyOf[0] oneOf[8] array yes none none Velocity multiplier per axis
# $.root.particles.behaviors[].velocityMultiplier[0]ref:#/$defs/__schema0 anyOf[0] oneOf[8] number yes none none Missing source description
# $.root.particles.behaviors[].velocityMultiplier[1]ref:#/$defs/__schema0 anyOf[0] oneOf[8] number yes none none Missing source description
# $.root.particles.behaviors[].velocityMultiplier[2]ref:#/$defs/__schema0 anyOf[0] oneOf[8] number yes none none Missing source description
# $.root.particles.behaviors[].timeScaleref:#/$defs/__schema0 anyOf[0] oneOf[8] array yes none none Time scale per axis
# $.root.particles.behaviors[].timeScale[0]ref:#/$defs/__schema0 anyOf[0] oneOf[8] number yes none none Missing source description
# $.root.particles.behaviors[].timeScale[1]ref:#/$defs/__schema0 anyOf[0] oneOf[8] number yes none none Missing source description
# $.root.particles.behaviors[].timeScale[2]ref:#/$defs/__schema0 anyOf[0] oneOf[8] number yes none none Missing source description
# $.root.particles.behaviors[]ref:#/$defs/__schema0 anyOf[0] oneOf[9] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].typeref:#/$defs/__schema0 anyOf[0] oneOf[9] const "FrameOverLife" yes none {"const":"FrameOverLife"} Missing source description
# $.root.particles.behaviors[].frameref:#/$defs/__schema0 anyOf[0] oneOf[9] oneOf (3) yes none none Sprite sheet frame index over lifetime
# $.root.particles.behaviors[].frameref:#/$defs/__schema0 anyOf[0] oneOf[9] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].frame.typeref:#/$defs/__schema0 anyOf[0] oneOf[9] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.behaviors[].frame.valueref:#/$defs/__schema0 anyOf[0] oneOf[9] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].frameref:#/$defs/__schema0 anyOf[0] oneOf[9] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].frame.typeref:#/$defs/__schema0 anyOf[0] oneOf[9] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.behaviors[].frame.aref:#/$defs/__schema0 anyOf[0] oneOf[9] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].frame.bref:#/$defs/__schema0 anyOf[0] oneOf[9] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].frameref:#/$defs/__schema0 anyOf[0] oneOf[9] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].frame.typeref:#/$defs/__schema0 anyOf[0] oneOf[9] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.behaviors[].frame.functionsref:#/$defs/__schema0 anyOf[0] oneOf[9] oneOf[2] array yes none none Missing source description
# $.root.particles.behaviors[].frame.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[9] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].frame.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[9] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].frame.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[9] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].frame.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[9] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].frame.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[9] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].frame.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[9] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].frame.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[9] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[]ref:#/$defs/__schema0 anyOf[0] oneOf[10] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].typeref:#/$defs/__schema0 anyOf[0] oneOf[10] const "LimitSpeedOverLife" yes none {"const":"LimitSpeedOverLife"} Missing source description
# $.root.particles.behaviors[].speedref:#/$defs/__schema0 anyOf[0] oneOf[10] oneOf (3) yes none none Maximum speed over lifetime
# $.root.particles.behaviors[].speedref:#/$defs/__schema0 anyOf[0] oneOf[10] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].speed.typeref:#/$defs/__schema0 anyOf[0] oneOf[10] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.behaviors[].speed.valueref:#/$defs/__schema0 anyOf[0] oneOf[10] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].speedref:#/$defs/__schema0 anyOf[0] oneOf[10] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].speed.typeref:#/$defs/__schema0 anyOf[0] oneOf[10] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.behaviors[].speed.aref:#/$defs/__schema0 anyOf[0] oneOf[10] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].speed.bref:#/$defs/__schema0 anyOf[0] oneOf[10] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].speedref:#/$defs/__schema0 anyOf[0] oneOf[10] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].speed.typeref:#/$defs/__schema0 anyOf[0] oneOf[10] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.behaviors[].speed.functionsref:#/$defs/__schema0 anyOf[0] oneOf[10] oneOf[2] array yes none none Missing source description
# $.root.particles.behaviors[].speed.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[10] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].speed.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[10] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].speed.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[10] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].speed.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[10] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].speed.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[10] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].speed.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[10] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].speed.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[10] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].dampenref:#/$defs/__schema0 anyOf[0] oneOf[10] number yes none none Damping factor when speed exceeds limit (0–1)
# $.root.particles.behaviors[]ref:#/$defs/__schema0 anyOf[0] oneOf[11] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].typeref:#/$defs/__schema0 anyOf[0] oneOf[11] const "ChangeEmitDirection" yes none {"const":"ChangeEmitDirection"} Missing source description
# $.root.particles.behaviors[].angleref:#/$defs/__schema0 anyOf[0] oneOf[11] oneOf (3) yes none none Angle deviation from original emit direction
# $.root.particles.behaviors[].angleref:#/$defs/__schema0 anyOf[0] oneOf[11] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].angle.typeref:#/$defs/__schema0 anyOf[0] oneOf[11] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.behaviors[].angle.valueref:#/$defs/__schema0 anyOf[0] oneOf[11] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].angleref:#/$defs/__schema0 anyOf[0] oneOf[11] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].angle.typeref:#/$defs/__schema0 anyOf[0] oneOf[11] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.behaviors[].angle.aref:#/$defs/__schema0 anyOf[0] oneOf[11] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].angle.bref:#/$defs/__schema0 anyOf[0] oneOf[11] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].angleref:#/$defs/__schema0 anyOf[0] oneOf[11] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].angle.typeref:#/$defs/__schema0 anyOf[0] oneOf[11] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.behaviors[].angle.functionsref:#/$defs/__schema0 anyOf[0] oneOf[11] oneOf[2] array yes none none Missing source description
# $.root.particles.behaviors[].angle.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[11] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].angle.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[11] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].angle.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[11] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].angle.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[11] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].angle.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[11] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].angle.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[11] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].angle.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[11] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[]ref:#/$defs/__schema0 anyOf[0] oneOf[12] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].typeref:#/$defs/__schema0 anyOf[0] oneOf[12] const "GravityForce" yes none {"const":"GravityForce"} Missing source description
# $.root.particles.behaviors[].centerref:#/$defs/__schema0 anyOf[0] oneOf[12] array yes none none Gravity center point
# $.root.particles.behaviors[].center[0]ref:#/$defs/__schema0 anyOf[0] oneOf[12] number yes none none Missing source description
# $.root.particles.behaviors[].center[1]ref:#/$defs/__schema0 anyOf[0] oneOf[12] number yes none none Missing source description
# $.root.particles.behaviors[].center[2]ref:#/$defs/__schema0 anyOf[0] oneOf[12] number yes none none Missing source description
# $.root.particles.behaviors[].magnituderef:#/$defs/__schema0 anyOf[0] oneOf[12] number yes none none Gravity force strength
# $.root.particles.behaviors[]ref:#/$defs/__schema0 anyOf[0] oneOf[13] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].typeref:#/$defs/__schema0 anyOf[0] oneOf[13] const "WidthOverLength" yes none {"const":"WidthOverLength"} Missing source description
# $.root.particles.behaviors[].widthref:#/$defs/__schema0 anyOf[0] oneOf[13] oneOf (3) yes none none Trail width over trail length
# $.root.particles.behaviors[].widthref:#/$defs/__schema0 anyOf[0] oneOf[13] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].width.typeref:#/$defs/__schema0 anyOf[0] oneOf[13] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.behaviors[].width.valueref:#/$defs/__schema0 anyOf[0] oneOf[13] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].widthref:#/$defs/__schema0 anyOf[0] oneOf[13] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].width.typeref:#/$defs/__schema0 anyOf[0] oneOf[13] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.behaviors[].width.aref:#/$defs/__schema0 anyOf[0] oneOf[13] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].width.bref:#/$defs/__schema0 anyOf[0] oneOf[13] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].widthref:#/$defs/__schema0 anyOf[0] oneOf[13] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].width.typeref:#/$defs/__schema0 anyOf[0] oneOf[13] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.behaviors[].width.functionsref:#/$defs/__schema0 anyOf[0] oneOf[13] oneOf[2] array yes none none Missing source description
# $.root.particles.behaviors[].width.functions[]ref:#/$defs/__schema0 anyOf[0] oneOf[13] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].width.functions[].functionref:#/$defs/__schema0 anyOf[0] oneOf[13] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].width.functions[].function.p0ref:#/$defs/__schema0 anyOf[0] oneOf[13] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].width.functions[].function.p1ref:#/$defs/__schema0 anyOf[0] oneOf[13] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].width.functions[].function.p2ref:#/$defs/__schema0 anyOf[0] oneOf[13] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].width.functions[].function.p3ref:#/$defs/__schema0 anyOf[0] oneOf[13] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].width.functions[].startref:#/$defs/__schema0 anyOf[0] oneOf[13] oneOf[2] number yes none none Missing source description
# $.root.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.)
# $.root.particles.worldSpaceref:#/$defs/__schema0 anyOf[0] boolean no none none Simulate particles in world space instead of local space
# $.root.particles.renderOrderref:#/$defs/__schema0 anyOf[0] number no none none Render order for sorting (higher = rendered later)
# $.root.particles.uTileCountref:#/$defs/__schema0 anyOf[0] integer no none {"minimum":-9007199254740991,"maximum":9007199254740991} Horizontal tile count in sprite sheet
# $.root.particles.vTileCountref:#/$defs/__schema0 anyOf[0] integer no none {"minimum":-9007199254740991,"maximum":9007199254740991} Vertical tile count in sprite sheet
# $.root.particles.blendTilesref:#/$defs/__schema0 anyOf[0] boolean no none none Blend between sprite sheet tiles for smooth animation
# $.root.particles.softParticlesref:#/$defs/__schema0 anyOf[0] boolean no none none Enable soft particle depth fading
# $.root.particles.softFarFaderef:#/$defs/__schema0 anyOf[0] number no none none Far fade distance for soft particles
# $.root.particles.softNearFaderef:#/$defs/__schema0 anyOf[0] number no none none Near fade distance for soft particles
# $.root.particles.materialref:#/$defs/__schema0 anyOf[0] object yes none {"additionalProperties":false} Particle material settings
# $.root.particles.material.typeref:#/$defs/__schema0 anyOf[0] enum (2) no none {"enum":["basic","standard"]} Particle material shading model
# $.root.particles.material.colorref:#/$defs/__schema0 anyOf[0] string no none none Particle color as CSS hex string
# $.root.particles.material.mapref:#/$defs/__schema0 anyOf[0] string no none none Path to particle sprite texture
# $.root.particles.material.blendingref:#/$defs/__schema0 anyOf[0] enum (2) no none {"enum":["normal","additive"]} Blending mode (additive for glowing/fire effects)
# $.root.particles.material.transparentref:#/$defs/__schema0 anyOf[0] boolean no none none Enable transparency
# $.root.particles.material.depthWriteref:#/$defs/__schema0 anyOf[0] boolean no none none Write to depth buffer (disable for additive effects)
# $.root.particles.material.sideref:#/$defs/__schema0 anyOf[0] enum (3) no none {"enum":["front","back","double"]} Which face sides to render
# $.root.splineref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":false} Spline path
# $.root.spline.curveTyperef:#/$defs/__schema0 anyOf[0] enum (3) yes none {"enum":["centripetal","chordal","catmullrom"]} CatmullRomCurve3 parameterization type. Matches Three.js curveType parameter
# $.root.spline.pointsref:#/$defs/__schema0 anyOf[0] array yes none {"minItems":2} Control point positions in local space
# $.root.spline.points[]ref:#/$defs/__schema0 anyOf[0] array yes none none 3D vector as [x, y, z]
# $.root.spline.points[][0]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.root.spline.points[][1]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.root.spline.points[][2]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.root.spline.closedref:#/$defs/__schema0 anyOf[0] boolean no none none Whether the spline forms a closed loop
# $.root.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
# $.root.spline.resolutionref:#/$defs/__schema0 anyOf[0] number no none none Number of line segments for rendering the curve
# $.root.jointsref:#/$defs/__schema0 anyOf[0] array no none none Physics joints connecting to other bodies
# $.root.joints[]ref:#/$defs/__schema0 anyOf[0] object yes none {"additionalProperties":false} Physics joint constraint between two bodies
# $.root.joints[].typeref:#/$defs/__schema0 anyOf[0] enum (5) yes none {"enum":["fixed","revolute","prismatic","spherical","spring"]} Joint constraint type
# $.root.joints[].targetref:#/$defs/__schema0 anyOf[0] string yes none none Entity ID of the body this joint connects to
# $.root.joints[].anchorref:#/$defs/__schema0 anyOf[0] array no none none Local anchor point on this body
# $.root.joints[].anchor[0]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.root.joints[].anchor[1]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.root.joints[].anchor[2]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.root.joints[].targetAnchorref:#/$defs/__schema0 anyOf[0] array no none none Local anchor point on the target body
# $.root.joints[].targetAnchor[0]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.root.joints[].targetAnchor[1]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.root.joints[].targetAnchor[2]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.root.joints[].axisref:#/$defs/__schema0 anyOf[0] array no none none Rotation/slide axis for revolute and prismatic joints
# $.root.joints[].axis[0]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.root.joints[].axis[1]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.root.joints[].axis[2]ref:#/$defs/__schema0 anyOf[0] number yes none none Missing source description
# $.root.joints[].limitsref:#/$defs/__schema0 anyOf[0] object no none {"additionalProperties":false} Angle or distance limits for revolute/prismatic joints
# $.root.joints[].limits.minref:#/$defs/__schema0 anyOf[0] number yes none none Minimum angle (degrees) or distance
# $.root.joints[].limits.maxref:#/$defs/__schema0 anyOf[0] number yes none none Maximum angle (degrees) or distance
# $.root.joints[].stiffnessref:#/$defs/__schema0 anyOf[0] number no none none Spring stiffness coefficient
# $.root.joints[].dampingref:#/$defs/__schema0 anyOf[0] number no none none Spring damping coefficient
# $.root.joints[].restLengthref:#/$defs/__schema0 anyOf[0] number no none none Spring rest length
# $.root.childrenref:#/$defs/__schema0 anyOf[0] array no none none Child entities
# $.root.children[]ref:#/$defs/__schema0 anyOf[0] ref #/$defs/__schema0 yes none none Missing source description
# $.rootref:#/$defs/__schema0 anyOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.idref:#/$defs/__schema0 anyOf[1] string no none none Unique entity ID. Auto-generated if omitted
# $.root.nameref:#/$defs/__schema0 anyOf[1] string yes none none Human-readable entity name (shown in hierarchy panel)
# $.root.visibleref:#/$defs/__schema0 anyOf[1] boolean no none none Whether the entity and its children are rendered
# $.root.lockedref:#/$defs/__schema0 anyOf[1] boolean no none none Prevent selection and editing in the scene editor
# $.root.tagsref:#/$defs/__schema0 anyOf[1] array no none none Arbitrary string tags for runtime queries
# $.root.tags[]ref:#/$defs/__schema0 anyOf[1] string yes none none Missing source description
# $.root.prefabref:#/$defs/__schema0 anyOf[1] string yes none none Path to .prefab.json file to instantiate
# $.root.materialRefref:#/$defs/__schema0 anyOf[1] string no none none Path to shared .mat.json material asset. Mutually exclusive with inline material
# $.root.transformref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Local transform relative to parent
# $.root.transform.positionref:#/$defs/__schema0 anyOf[1] array no none none World-space position [x, y, z]
# $.root.transform.position[0]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.root.transform.position[1]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.root.transform.position[2]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.root.transform.rotationref:#/$defs/__schema0 anyOf[1] array no none none Rotation quaternion [x, y, z, w]
# $.root.transform.rotation[0]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.root.transform.rotation[1]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.root.transform.rotation[2]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.root.transform.rotation[3]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.root.transform.scaleref:#/$defs/__schema0 anyOf[1] array no none none Scale factor per axis [x, y, z]. Defaults to [1, 1, 1]
# $.root.transform.scale[0]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.root.transform.scale[1]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.root.transform.scale[2]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.root.boneAttachmentref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Animated bone/socket attachment. Use transform for the local position, rotation, and scale offset
# $.root.boneAttachment.targetref:#/$defs/__schema0 anyOf[1] string yes none none Entity ID whose animated skeleton owns the target bone
# $.root.boneAttachment.boneref:#/$defs/__schema0 anyOf[1] string yes none none Exact name of the target bone or socket Object3D
# $.root.pivotref:#/$defs/__schema0 anyOf[1] array no none none Local-space pivot point for rotation/scale. [0,0,0] = geometry center
# $.root.pivot[0]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.root.pivot[1]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.root.pivot[2]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.root.navigationref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Navigation mesh role for this entity
# $.root.navigation.roleref:#/$defs/__schema0 anyOf[1] enum (2) yes none {"enum":["walkable","obstacle"]} Whether this entity is walkable surface or an obstacle
# $.root.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.
# $.root.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.
# $.root.render.frustumCullingref:#/$defs/__schema0 anyOf[1] boolean no none none Per-instance frustum culling for batched content.
# $.root.render.lodref:#/$defs/__schema0 anyOf[1] boolean no none none Distance-based geometry swap (LOD) for eligible entities.
# $.root.render.shadowsref:#/$defs/__schema0 anyOf[1] boolean no none none Enable the shadow map. Per-entity cast/receive still applies.
# $.root.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)
# $.root.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
# $.root.components{key}{key}ref:#/$defs/__schema0 anyOf[1] anyOf (4) no none none Missing source description
# $.root.components{key}{key}ref:#/$defs/__schema0 anyOf[1] anyOf[0] anyOf (3) no none none Missing source description
# $.root.components{key}{key}ref:#/$defs/__schema0 anyOf[1] anyOf[0] anyOf[0] number no none none Missing source description
# $.root.components{key}{key}ref:#/$defs/__schema0 anyOf[1] anyOf[0] anyOf[1] string no none none Missing source description
# $.root.components{key}{key}ref:#/$defs/__schema0 anyOf[1] anyOf[0] anyOf[2] boolean no none none Missing source description
# $.root.components{key}{key}ref:#/$defs/__schema0 anyOf[1] anyOf[1] array no none none Missing source description
# $.root.components{key}{key}[]ref:#/$defs/__schema0 anyOf[1] anyOf[1] number yes none none Missing source description
# $.root.components{key}{key}ref:#/$defs/__schema0 anyOf[1] anyOf[2] array no none none Missing source description
# $.root.components{key}{key}[]ref:#/$defs/__schema0 anyOf[1] anyOf[2] string yes none none Missing source description
# $.root.components{key}{key}ref:#/$defs/__schema0 anyOf[1] anyOf[3] array no none none Missing source description
# $.root.components{key}{key}[]ref:#/$defs/__schema0 anyOf[1] anyOf[3] boolean yes none none Missing source description
# $.root.meshref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Mesh overrides merged with prefab
# $.root.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
# $.root.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]
# $.root.mesh.args[]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.root.mesh.srcref:#/$defs/__schema0 anyOf[1] string no none none Path to the external render asset. Required for "gltf" (GLTF/GLB) and "splat" (SPZ)
# $.root.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).
# $.root.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.
# $.root.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.
# $.root.mesh.lod[]ref:#/$defs/__schema0 anyOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.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.
# $.root.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).
# $.root.materialref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Material overrides merged with prefab
# $.root.material.typeref:#/$defs/__schema0 anyOf[1] enum (4) no none {"enum":["standard","physical","basic","toon"]} Material shading model
# $.root.material.colorref:#/$defs/__schema0 anyOf[1] string no none none Base color as CSS hex string (e.g. "#ff0000")
# $.root.material.metalnessref:#/$defs/__schema0 anyOf[1] number no none none Metalness factor 0–1 (standard/physical only)
# $.root.material.roughnessref:#/$defs/__schema0 anyOf[1] number no none none Roughness factor 0–1 (standard/physical only)
# $.root.material.mapref:#/$defs/__schema0 anyOf[1] string no none none Path to albedo/diffuse texture image
# $.root.material.normalMapref:#/$defs/__schema0 anyOf[1] string no none none Path to normal map texture image
# $.root.material.emissiveref:#/$defs/__schema0 anyOf[1] string no none none Emissive color as CSS hex string
# $.root.material.emissiveIntensityref:#/$defs/__schema0 anyOf[1] number no none none Emissive light intensity multiplier
# $.root.material.emissiveMapref:#/$defs/__schema0 anyOf[1] string no none none Path to emissive map texture image
# $.root.material.aoMapref:#/$defs/__schema0 anyOf[1] string no none none Path to ambient occlusion map texture image
# $.root.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.
# $.root.material.lightMapIntensityref:#/$defs/__schema0 anyOf[1] number no none none Lightmap intensity multiplier (default 1).
# $.root.material.roughnessMapref:#/$defs/__schema0 anyOf[1] string no none none Path to roughness map texture image
# $.root.material.metalnessMapref:#/$defs/__schema0 anyOf[1] string no none none Path to metalness map texture image
# $.root.material.opacityref:#/$defs/__schema0 anyOf[1] number no none none Opacity 0–1. Set transparent: true to enable
# $.root.material.transparentref:#/$defs/__schema0 anyOf[1] boolean no none none Enable alpha blending for this material
# $.root.material.sideref:#/$defs/__schema0 anyOf[1] enum (3) no none {"enum":["front","back","double"]} Which face sides to render
# $.root.material.flatShadingref:#/$defs/__schema0 anyOf[1] boolean no none none Use flat (faceted) shading instead of smooth
# $.root.material.clearcoatref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Clearcoat layer (physical only)
# $.root.material.clearcoat.clearcoatref:#/$defs/__schema0 anyOf[1] number yes none none Clearcoat layer intensity 0–1
# $.root.material.clearcoat.clearcoatRoughnessref:#/$defs/__schema0 anyOf[1] number no none none Clearcoat roughness 0–1
# $.root.material.clearcoat.clearcoatMapref:#/$defs/__schema0 anyOf[1] string no none none Path to clearcoat intensity map
# $.root.material.clearcoat.clearcoatRoughnessMapref:#/$defs/__schema0 anyOf[1] string no none none Path to clearcoat roughness map
# $.root.material.transmissionref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Light transmission (physical only)
# $.root.material.transmission.transmissionref:#/$defs/__schema0 anyOf[1] number yes none none Transmission intensity 0–1 (glass, liquid)
# $.root.material.transmission.iorref:#/$defs/__schema0 anyOf[1] number no none none Index of refraction (default 1.5)
# $.root.material.transmission.thicknessref:#/$defs/__schema0 anyOf[1] number no none none Volume thickness for refraction
# $.root.material.transmission.attenuationColorref:#/$defs/__schema0 anyOf[1] string no none none Color absorbed over distance
# $.root.material.transmission.attenuationDistanceref:#/$defs/__schema0 anyOf[1] number no none none Distance at which attenuation color takes full effect
# $.root.material.transmission.transmissionMapref:#/$defs/__schema0 anyOf[1] string no none none Path to transmission map
# $.root.material.sheenref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Sheen layer (physical only)
# $.root.material.sheen.sheenref:#/$defs/__schema0 anyOf[1] number yes none none Sheen intensity 0–1 (fabric, velvet)
# $.root.material.sheen.sheenColorref:#/$defs/__schema0 anyOf[1] string no none none Sheen tint color
# $.root.material.sheen.sheenRoughnessref:#/$defs/__schema0 anyOf[1] number no none none Sheen roughness 0–1
# $.root.material.sheen.sheenColorMapref:#/$defs/__schema0 anyOf[1] string no none none Path to sheen color map
# $.root.material.sheen.sheenRoughnessMapref:#/$defs/__schema0 anyOf[1] string no none none Path to sheen roughness map
# $.root.material.iridescenceref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Iridescence thin-film (physical only)
# $.root.material.iridescence.iridescenceref:#/$defs/__schema0 anyOf[1] number yes none none Iridescence intensity 0–1 (soap bubbles, oil slick)
# $.root.material.iridescence.iridescenceIORref:#/$defs/__schema0 anyOf[1] number no none none Thin-film IOR (default 1.3)
# $.root.material.iridescence.iridescenceThicknessRangeref:#/$defs/__schema0 anyOf[1] array no none none Min/max thin-film thickness in nm
# $.root.material.iridescence.iridescenceThicknessRange[0]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.root.material.iridescence.iridescenceThicknessRange[1]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.root.material.iridescence.iridescenceMapref:#/$defs/__schema0 anyOf[1] string no none none Path to iridescence intensity map
# $.root.material.iridescence.iridescenceThicknessMapref:#/$defs/__schema0 anyOf[1] string no none none Path to iridescence thickness map
# $.root.material.displacementMapref:#/$defs/__schema0 anyOf[1] string no none none Path to displacement/height map
# $.root.material.displacementScaleref:#/$defs/__schema0 anyOf[1] number no none none Displacement height multiplier
# $.root.material.displacementBiasref:#/$defs/__schema0 anyOf[1] number no none none Displacement offset
# $.root.lightref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Light overrides merged with prefab
# $.root.light.typeref:#/$defs/__schema0 anyOf[1] enum (5) no none {"enum":["directional","point","spot","hemisphere","area"]} Light type
# $.root.light.colorref:#/$defs/__schema0 anyOf[1] string no none none Light color as CSS hex string
# $.root.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.
# $.root.light.groundColorref:#/$defs/__schema0 anyOf[1] string no none none Ground color for hemisphere lights
# $.root.light.distanceref:#/$defs/__schema0 anyOf[1] number no none none Maximum range of the light. 0 = infinite (point/spot only)
# $.root.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.
# $.root.light.angleref:#/$defs/__schema0 anyOf[1] number no none none Spotlight cone angle in radians (spot only)
# $.root.light.penumbraref:#/$defs/__schema0 anyOf[1] number no none none Spotlight penumbra softness 0–1 (spot only)
# $.root.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.
# $.root.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.
# $.root.shadowref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Shadow overrides merged with prefab
# $.root.shadow.enabledref:#/$defs/__schema0 anyOf[1] boolean no none none Whether this light casts shadows
# $.root.shadow.mapSizeref:#/$defs/__schema0 anyOf[1] number no none none Shadow map resolution in pixels (e.g. 1024, 2048)
# $.root.shadow.cameraref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Shadow camera frustum bounds (directional lights)
# $.root.shadow.camera.leftref:#/$defs/__schema0 anyOf[1] number no none none Left bound of shadow camera frustum
# $.root.shadow.camera.rightref:#/$defs/__schema0 anyOf[1] number no none none Right bound of shadow camera frustum
# $.root.shadow.camera.topref:#/$defs/__schema0 anyOf[1] number no none none Top bound of shadow camera frustum
# $.root.shadow.camera.bottomref:#/$defs/__schema0 anyOf[1] number no none none Bottom bound of shadow camera frustum
# $.root.shadow.radiusref:#/$defs/__schema0 anyOf[1] number no none none Shadow map blur radius for soft shadows
# $.root.shadow.biasref:#/$defs/__schema0 anyOf[1] number no none none Shadow bias to reduce shadow acne artifacts
# $.root.physicsref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Physics overrides merged with prefab
# $.root.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.
# $.root.physics.massref:#/$defs/__schema0 anyOf[1] number no none none Explicit mass override. If omitted, computed from collider density and volume
# $.root.physics.colliderref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Partial collider overrides merged with prefab
# $.root.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.
# $.root.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).
# $.root.physics.collider.halfExtents[0]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.root.physics.collider.halfExtents[1]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.root.physics.collider.halfExtents[2]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.root.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).
# $.root.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.
# $.root.physics.collider.frictionref:#/$defs/__schema0 anyOf[1] number no none none Surface friction coefficient
# $.root.physics.collider.restitutionref:#/$defs/__schema0 anyOf[1] number no none none Bounciness coefficient (0 = no bounce, 1 = perfect bounce)
# $.root.physics.collider.densityref:#/$defs/__schema0 anyOf[1] number no none none Mass density. Used to compute mass from collider volume
# $.root.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.
# $.root.physics.collider.offset[0]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.root.physics.collider.offset[1]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.root.physics.collider.offset[2]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.root.physics.collider.isSensorref:#/$defs/__schema0 anyOf[1] boolean no none none When true, detects overlaps without physical blocking (trigger volume)
# $.root.physics.collider.collisionGroupsref:#/$defs/__schema0 anyOf[1] number no none none Bitmask: collision layers this collider belongs to (max 16 bits)
# $.root.physics.collider.collisionFilterref:#/$defs/__schema0 anyOf[1] number no none none Bitmask: collision layers this collider interacts with (max 16 bits)
# $.root.cameraref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Camera overrides merged with prefab
# $.root.camera.typeref:#/$defs/__schema0 anyOf[1] enum (2) no none {"enum":["perspective","orthographic"]} Camera projection type
# $.root.camera.fovref:#/$defs/__schema0 anyOf[1] number no none none Vertical field of view in degrees (perspective only)
# $.root.camera.nearref:#/$defs/__schema0 anyOf[1] number no none none Near clipping plane distance
# $.root.camera.farref:#/$defs/__schema0 anyOf[1] number no none none Far clipping plane distance
# $.root.camera.orthoSizeref:#/$defs/__schema0 anyOf[1] number no none none Half-height of the orthographic frustum (orthographic only)
# $.root.camera.widthref:#/$defs/__schema0 anyOf[1] number no none none Render width in pixels. Defaults to viewport width
# $.root.camera.heightref:#/$defs/__schema0 anyOf[1] number no none none Render height in pixels. Defaults to viewport height
# $.root.audioref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Audio source
# $.root.audio.srcref:#/$defs/__schema0 anyOf[1] string no none none Path to audio file (WAV, MP3, OGG)
# $.root.audio.spatialref:#/$defs/__schema0 anyOf[1] boolean no none none Enable 3D spatial audio (positional sound)
# $.root.audio.volumeref:#/$defs/__schema0 anyOf[1] number no none none Playback volume 0–1
# $.root.audio.refDistanceref:#/$defs/__schema0 anyOf[1] number no none none Distance at which volume starts to attenuate (spatial only)
# $.root.audio.rolloffFactorref:#/$defs/__schema0 anyOf[1] number no none none How quickly volume attenuates with distance (spatial only)
# $.root.audio.maxDistanceref:#/$defs/__schema0 anyOf[1] number no none none Maximum distance at which sound is audible (spatial only)
# $.root.audio.loopref:#/$defs/__schema0 anyOf[1] boolean no none none Whether the audio should loop
# $.root.audio.autoplayref:#/$defs/__schema0 anyOf[1] boolean no none none Start playing automatically when the scene loads
# $.root.animationref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Animation configuration
# $.root.animation.autoplayref:#/$defs/__schema0 anyOf[1] string no none none Clip name to play automatically on load
# $.root.animation.loopref:#/$defs/__schema0 anyOf[1] boolean no none none Whether the autoplay clip should loop
# $.root.animation.clipAliasesref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}} Map raw GLTF clip names to clean names
# $.root.animation.clipAliases{key}ref:#/$defs/__schema0 anyOf[1] string no none none Missing source description
# $.root.particlesref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Particle overrides merged with prefab
# $.root.particles.autoDestroyref:#/$defs/__schema0 anyOf[1] boolean no none none Destroy the particle system when all particles have died
# $.root.particles.loopingref:#/$defs/__schema0 anyOf[1] boolean no none none Continuously emit particles
# $.root.particles.prewarmref:#/$defs/__schema0 anyOf[1] boolean no none none Simulate one full cycle on start so particles appear immediately
# $.root.particles.durationref:#/$defs/__schema0 anyOf[1] number no none none Total emission duration in seconds
# $.root.particles.shaperef:#/$defs/__schema0 anyOf[1] oneOf (8) no none none Emitter shape that defines where particles spawn
# $.root.particles.shaperef:#/$defs/__schema0 anyOf[1] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.root.particles.shape.typeref:#/$defs/__schema0 anyOf[1] oneOf[0] const "point" yes none {"const":"point"} Missing source description
# $.root.particles.shaperef:#/$defs/__schema0 anyOf[1] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.root.particles.shape.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] const "sphere" yes none {"const":"sphere"} Missing source description
# $.root.particles.shape.radiusref:#/$defs/__schema0 anyOf[1] oneOf[1] number no none none Sphere radius
# $.root.particles.shape.arcref:#/$defs/__schema0 anyOf[1] oneOf[1] number no none none Arc angle in radians (2π = full sphere)
# $.root.particles.shape.thicknessref:#/$defs/__schema0 anyOf[1] oneOf[1] number no none none Shell thickness 0–1 (1 = solid, 0 = surface only)
# $.root.particles.shaperef:#/$defs/__schema0 anyOf[1] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.root.particles.shape.typeref:#/$defs/__schema0 anyOf[1] oneOf[2] const "hemisphere" yes none {"const":"hemisphere"} Missing source description
# $.root.particles.shape.radiusref:#/$defs/__schema0 anyOf[1] oneOf[2] number no none none Hemisphere radius
# $.root.particles.shape.arcref:#/$defs/__schema0 anyOf[1] oneOf[2] number no none none Arc angle in radians
# $.root.particles.shape.thicknessref:#/$defs/__schema0 anyOf[1] oneOf[2] number no none none Shell thickness 0–1
# $.root.particles.shaperef:#/$defs/__schema0 anyOf[1] oneOf[3] object no none {"additionalProperties":false} Missing source description
# $.root.particles.shape.typeref:#/$defs/__schema0 anyOf[1] oneOf[3] const "cone" yes none {"const":"cone"} Missing source description
# $.root.particles.shape.radiusref:#/$defs/__schema0 anyOf[1] oneOf[3] number no none none Cone base radius
# $.root.particles.shape.arcref:#/$defs/__schema0 anyOf[1] oneOf[3] number no none none Arc angle in radians
# $.root.particles.shape.thicknessref:#/$defs/__schema0 anyOf[1] oneOf[3] number no none none Shell thickness 0–1
# $.root.particles.shape.angleref:#/$defs/__schema0 anyOf[1] oneOf[3] number no none none Cone opening angle in radians
# $.root.particles.shaperef:#/$defs/__schema0 anyOf[1] oneOf[4] object no none {"additionalProperties":false} Missing source description
# $.root.particles.shape.typeref:#/$defs/__schema0 anyOf[1] oneOf[4] const "circle" yes none {"const":"circle"} Missing source description
# $.root.particles.shape.radiusref:#/$defs/__schema0 anyOf[1] oneOf[4] number no none none Circle radius
# $.root.particles.shape.arcref:#/$defs/__schema0 anyOf[1] oneOf[4] number no none none Arc angle in radians
# $.root.particles.shape.thicknessref:#/$defs/__schema0 anyOf[1] oneOf[4] number no none none Ring thickness 0–1
# $.root.particles.shaperef:#/$defs/__schema0 anyOf[1] oneOf[5] object no none {"additionalProperties":false} Missing source description
# $.root.particles.shape.typeref:#/$defs/__schema0 anyOf[1] oneOf[5] const "donut" yes none {"const":"donut"} Missing source description
# $.root.particles.shape.radiusref:#/$defs/__schema0 anyOf[1] oneOf[5] number no none none Donut major radius
# $.root.particles.shape.arcref:#/$defs/__schema0 anyOf[1] oneOf[5] number no none none Arc angle in radians
# $.root.particles.shape.thicknessref:#/$defs/__schema0 anyOf[1] oneOf[5] number no none none Ring thickness 0–1
# $.root.particles.shape.donutRadiusref:#/$defs/__schema0 anyOf[1] oneOf[5] number no none none Donut tube (minor) radius
# $.root.particles.shaperef:#/$defs/__schema0 anyOf[1] oneOf[6] object no none {"additionalProperties":false} Missing source description
# $.root.particles.shape.typeref:#/$defs/__schema0 anyOf[1] oneOf[6] const "rectangle" yes none {"const":"rectangle"} Missing source description
# $.root.particles.shape.widthref:#/$defs/__schema0 anyOf[1] oneOf[6] number no none none Rectangle width
# $.root.particles.shape.heightref:#/$defs/__schema0 anyOf[1] oneOf[6] number no none none Rectangle height
# $.root.particles.shape.thicknessref:#/$defs/__schema0 anyOf[1] oneOf[6] number no none none Extrusion depth 0–1
# $.root.particles.shaperef:#/$defs/__schema0 anyOf[1] oneOf[7] object no none {"additionalProperties":false} Missing source description
# $.root.particles.shape.typeref:#/$defs/__schema0 anyOf[1] oneOf[7] const "grid" yes none {"const":"grid"} Missing source description
# $.root.particles.shape.widthref:#/$defs/__schema0 anyOf[1] oneOf[7] number no none none Grid total width
# $.root.particles.shape.heightref:#/$defs/__schema0 anyOf[1] oneOf[7] number no none none Grid total height
# $.root.particles.shape.columnref:#/$defs/__schema0 anyOf[1] oneOf[7] integer no none {"minimum":-9007199254740991,"maximum":9007199254740991} Number of columns
# $.root.particles.shape.rowref:#/$defs/__schema0 anyOf[1] oneOf[7] integer no none {"minimum":-9007199254740991,"maximum":9007199254740991} Number of rows
# $.root.particles.startLiferef:#/$defs/__schema0 anyOf[1] oneOf (3) no none none Initial particle lifetime in seconds
# $.root.particles.startLiferef:#/$defs/__schema0 anyOf[1] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startLife.typeref:#/$defs/__schema0 anyOf[1] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.startLife.valueref:#/$defs/__schema0 anyOf[1] oneOf[0] number yes none none Missing source description
# $.root.particles.startLiferef:#/$defs/__schema0 anyOf[1] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startLife.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.startLife.aref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.startLife.bref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.startLiferef:#/$defs/__schema0 anyOf[1] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startLife.typeref:#/$defs/__schema0 anyOf[1] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.startLife.functionsref:#/$defs/__schema0 anyOf[1] oneOf[2] array yes none none Missing source description
# $.root.particles.startLife.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startLife.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startLife.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.startLife.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.startLife.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.startLife.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.startLife.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.startSpeedref:#/$defs/__schema0 anyOf[1] oneOf (3) no none none Initial particle speed
# $.root.particles.startSpeedref:#/$defs/__schema0 anyOf[1] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startSpeed.typeref:#/$defs/__schema0 anyOf[1] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.startSpeed.valueref:#/$defs/__schema0 anyOf[1] oneOf[0] number yes none none Missing source description
# $.root.particles.startSpeedref:#/$defs/__schema0 anyOf[1] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startSpeed.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.startSpeed.aref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.startSpeed.bref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.startSpeedref:#/$defs/__schema0 anyOf[1] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startSpeed.typeref:#/$defs/__schema0 anyOf[1] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.startSpeed.functionsref:#/$defs/__schema0 anyOf[1] oneOf[2] array yes none none Missing source description
# $.root.particles.startSpeed.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startSpeed.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startSpeed.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.startSpeed.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.startSpeed.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.startSpeed.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.startSpeed.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.startSizeref:#/$defs/__schema0 anyOf[1] oneOf (3) no none none Initial particle size
# $.root.particles.startSizeref:#/$defs/__schema0 anyOf[1] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startSize.typeref:#/$defs/__schema0 anyOf[1] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.startSize.valueref:#/$defs/__schema0 anyOf[1] oneOf[0] number yes none none Missing source description
# $.root.particles.startSizeref:#/$defs/__schema0 anyOf[1] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startSize.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.startSize.aref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.startSize.bref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.startSizeref:#/$defs/__schema0 anyOf[1] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startSize.typeref:#/$defs/__schema0 anyOf[1] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.startSize.functionsref:#/$defs/__schema0 anyOf[1] oneOf[2] array yes none none Missing source description
# $.root.particles.startSize.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startSize.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startSize.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.startSize.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.startSize.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.startSize.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.startSize.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.startRotationref:#/$defs/__schema0 anyOf[1] oneOf (3) no none none Initial particle rotation in radians
# $.root.particles.startRotationref:#/$defs/__schema0 anyOf[1] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startRotation.typeref:#/$defs/__schema0 anyOf[1] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.startRotation.valueref:#/$defs/__schema0 anyOf[1] oneOf[0] number yes none none Missing source description
# $.root.particles.startRotationref:#/$defs/__schema0 anyOf[1] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startRotation.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.startRotation.aref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.startRotation.bref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.startRotationref:#/$defs/__schema0 anyOf[1] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startRotation.typeref:#/$defs/__schema0 anyOf[1] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.startRotation.functionsref:#/$defs/__schema0 anyOf[1] oneOf[2] array yes none none Missing source description
# $.root.particles.startRotation.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startRotation.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startRotation.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.startRotation.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.startRotation.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.startRotation.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.startRotation.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.startColorref:#/$defs/__schema0 anyOf[1] oneOf (4) no none none Initial particle color
# $.root.particles.startColorref:#/$defs/__schema0 anyOf[1] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.typeref:#/$defs/__schema0 anyOf[1] oneOf[0] const "ConstantColor" yes none {"const":"ConstantColor"} Missing source description
# $.root.particles.startColor.colorref:#/$defs/__schema0 anyOf[1] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.color.rref:#/$defs/__schema0 anyOf[1] oneOf[0] number yes none none Missing source description
# $.root.particles.startColor.color.gref:#/$defs/__schema0 anyOf[1] oneOf[0] number yes none none Missing source description
# $.root.particles.startColor.color.bref:#/$defs/__schema0 anyOf[1] oneOf[0] number yes none none Missing source description
# $.root.particles.startColor.color.aref:#/$defs/__schema0 anyOf[1] oneOf[0] number yes none none Missing source description
# $.root.particles.startColorref:#/$defs/__schema0 anyOf[1] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] const "ColorRange" yes none {"const":"ColorRange"} Missing source description
# $.root.particles.startColor.aref:#/$defs/__schema0 anyOf[1] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.a.rref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.startColor.a.gref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.startColor.a.bref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.startColor.a.aref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.startColor.bref:#/$defs/__schema0 anyOf[1] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.b.rref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.startColor.b.gref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.startColor.b.bref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.startColor.b.aref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.startColorref:#/$defs/__schema0 anyOf[1] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.typeref:#/$defs/__schema0 anyOf[1] oneOf[2] const "Gradient" yes none {"const":"Gradient"} Missing source description
# $.root.particles.startColor.colorref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.color.typeref:#/$defs/__schema0 anyOf[1] oneOf[2] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.root.particles.startColor.color.subTyperef:#/$defs/__schema0 anyOf[1] oneOf[2] const "Color" yes none {"const":"Color"} Missing source description
# $.root.particles.startColor.color.keysref:#/$defs/__schema0 anyOf[1] oneOf[2] array yes none none Missing source description
# $.root.particles.startColor.color.keys[]ref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.color.keys[].valueref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.color.keys[].value.rref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.startColor.color.keys[].value.gref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.startColor.color.keys[].value.bref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.startColor.color.keys[].posref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.startColor.alpharef:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.alpha.typeref:#/$defs/__schema0 anyOf[1] oneOf[2] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.root.particles.startColor.alpha.subTyperef:#/$defs/__schema0 anyOf[1] oneOf[2] const "Number" yes none {"const":"Number"} Missing source description
# $.root.particles.startColor.alpha.keysref:#/$defs/__schema0 anyOf[1] oneOf[2] array yes none none Missing source description
# $.root.particles.startColor.alpha.keys[]ref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.alpha.keys[].valueref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.startColor.alpha.keys[].posref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.startColorref:#/$defs/__schema0 anyOf[1] oneOf[3] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.typeref:#/$defs/__schema0 anyOf[1] oneOf[3] const "RandomColorBetweenGradient" yes none {"const":"RandomColorBetweenGradient"} Missing source description
# $.root.particles.startColor.gradient1ref:#/$defs/__schema0 anyOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.gradient1.typeref:#/$defs/__schema0 anyOf[1] oneOf[3] const "Gradient" yes none {"const":"Gradient"} Missing source description
# $.root.particles.startColor.gradient1.colorref:#/$defs/__schema0 anyOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.gradient1.color.typeref:#/$defs/__schema0 anyOf[1] oneOf[3] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.root.particles.startColor.gradient1.color.subTyperef:#/$defs/__schema0 anyOf[1] oneOf[3] const "Color" yes none {"const":"Color"} Missing source description
# $.root.particles.startColor.gradient1.color.keysref:#/$defs/__schema0 anyOf[1] oneOf[3] array yes none none Missing source description
# $.root.particles.startColor.gradient1.color.keys[]ref:#/$defs/__schema0 anyOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.gradient1.color.keys[].valueref:#/$defs/__schema0 anyOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.gradient1.color.keys[].value.rref:#/$defs/__schema0 anyOf[1] oneOf[3] number yes none none Missing source description
# $.root.particles.startColor.gradient1.color.keys[].value.gref:#/$defs/__schema0 anyOf[1] oneOf[3] number yes none none Missing source description
# $.root.particles.startColor.gradient1.color.keys[].value.bref:#/$defs/__schema0 anyOf[1] oneOf[3] number yes none none Missing source description
# $.root.particles.startColor.gradient1.color.keys[].posref:#/$defs/__schema0 anyOf[1] oneOf[3] number yes none none Missing source description
# $.root.particles.startColor.gradient1.alpharef:#/$defs/__schema0 anyOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.gradient1.alpha.typeref:#/$defs/__schema0 anyOf[1] oneOf[3] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.root.particles.startColor.gradient1.alpha.subTyperef:#/$defs/__schema0 anyOf[1] oneOf[3] const "Number" yes none {"const":"Number"} Missing source description
# $.root.particles.startColor.gradient1.alpha.keysref:#/$defs/__schema0 anyOf[1] oneOf[3] array yes none none Missing source description
# $.root.particles.startColor.gradient1.alpha.keys[]ref:#/$defs/__schema0 anyOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.gradient1.alpha.keys[].valueref:#/$defs/__schema0 anyOf[1] oneOf[3] number yes none none Missing source description
# $.root.particles.startColor.gradient1.alpha.keys[].posref:#/$defs/__schema0 anyOf[1] oneOf[3] number yes none none Missing source description
# $.root.particles.startColor.gradient2ref:#/$defs/__schema0 anyOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.gradient2.typeref:#/$defs/__schema0 anyOf[1] oneOf[3] const "Gradient" yes none {"const":"Gradient"} Missing source description
# $.root.particles.startColor.gradient2.colorref:#/$defs/__schema0 anyOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.gradient2.color.typeref:#/$defs/__schema0 anyOf[1] oneOf[3] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.root.particles.startColor.gradient2.color.subTyperef:#/$defs/__schema0 anyOf[1] oneOf[3] const "Color" yes none {"const":"Color"} Missing source description
# $.root.particles.startColor.gradient2.color.keysref:#/$defs/__schema0 anyOf[1] oneOf[3] array yes none none Missing source description
# $.root.particles.startColor.gradient2.color.keys[]ref:#/$defs/__schema0 anyOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.gradient2.color.keys[].valueref:#/$defs/__schema0 anyOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.gradient2.color.keys[].value.rref:#/$defs/__schema0 anyOf[1] oneOf[3] number yes none none Missing source description
# $.root.particles.startColor.gradient2.color.keys[].value.gref:#/$defs/__schema0 anyOf[1] oneOf[3] number yes none none Missing source description
# $.root.particles.startColor.gradient2.color.keys[].value.bref:#/$defs/__schema0 anyOf[1] oneOf[3] number yes none none Missing source description
# $.root.particles.startColor.gradient2.color.keys[].posref:#/$defs/__schema0 anyOf[1] oneOf[3] number yes none none Missing source description
# $.root.particles.startColor.gradient2.alpharef:#/$defs/__schema0 anyOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.gradient2.alpha.typeref:#/$defs/__schema0 anyOf[1] oneOf[3] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.root.particles.startColor.gradient2.alpha.subTyperef:#/$defs/__schema0 anyOf[1] oneOf[3] const "Number" yes none {"const":"Number"} Missing source description
# $.root.particles.startColor.gradient2.alpha.keysref:#/$defs/__schema0 anyOf[1] oneOf[3] array yes none none Missing source description
# $.root.particles.startColor.gradient2.alpha.keys[]ref:#/$defs/__schema0 anyOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startColor.gradient2.alpha.keys[].valueref:#/$defs/__schema0 anyOf[1] oneOf[3] number yes none none Missing source description
# $.root.particles.startColor.gradient2.alpha.keys[].posref:#/$defs/__schema0 anyOf[1] oneOf[3] number yes none none Missing source description
# $.root.particles.startLengthref:#/$defs/__schema0 anyOf[1] oneOf (3) no none none Initial trail length (trail render mode only)
# $.root.particles.startLengthref:#/$defs/__schema0 anyOf[1] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startLength.typeref:#/$defs/__schema0 anyOf[1] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.startLength.valueref:#/$defs/__schema0 anyOf[1] oneOf[0] number yes none none Missing source description
# $.root.particles.startLengthref:#/$defs/__schema0 anyOf[1] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startLength.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.startLength.aref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.startLength.bref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.startLengthref:#/$defs/__schema0 anyOf[1] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startLength.typeref:#/$defs/__schema0 anyOf[1] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.startLength.functionsref:#/$defs/__schema0 anyOf[1] oneOf[2] array yes none none Missing source description
# $.root.particles.startLength.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startLength.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startLength.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.startLength.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.startLength.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.startLength.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.startLength.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.startTileIndexref:#/$defs/__schema0 anyOf[1] oneOf (3) no none none Initial sprite sheet tile index
# $.root.particles.startTileIndexref:#/$defs/__schema0 anyOf[1] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startTileIndex.typeref:#/$defs/__schema0 anyOf[1] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.startTileIndex.valueref:#/$defs/__schema0 anyOf[1] oneOf[0] number yes none none Missing source description
# $.root.particles.startTileIndexref:#/$defs/__schema0 anyOf[1] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startTileIndex.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.startTileIndex.aref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.startTileIndex.bref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.startTileIndexref:#/$defs/__schema0 anyOf[1] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.root.particles.startTileIndex.typeref:#/$defs/__schema0 anyOf[1] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.startTileIndex.functionsref:#/$defs/__schema0 anyOf[1] oneOf[2] array yes none none Missing source description
# $.root.particles.startTileIndex.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startTileIndex.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.startTileIndex.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.startTileIndex.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.startTileIndex.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.startTileIndex.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.startTileIndex.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.emissionOverTimeref:#/$defs/__schema0 anyOf[1] oneOf (3) no none none Particles emitted per second
# $.root.particles.emissionOverTimeref:#/$defs/__schema0 anyOf[1] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.root.particles.emissionOverTime.typeref:#/$defs/__schema0 anyOf[1] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.emissionOverTime.valueref:#/$defs/__schema0 anyOf[1] oneOf[0] number yes none none Missing source description
# $.root.particles.emissionOverTimeref:#/$defs/__schema0 anyOf[1] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.root.particles.emissionOverTime.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.emissionOverTime.aref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.emissionOverTime.bref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.emissionOverTimeref:#/$defs/__schema0 anyOf[1] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.root.particles.emissionOverTime.typeref:#/$defs/__schema0 anyOf[1] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.emissionOverTime.functionsref:#/$defs/__schema0 anyOf[1] oneOf[2] array yes none none Missing source description
# $.root.particles.emissionOverTime.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.emissionOverTime.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.emissionOverTime.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.emissionOverTime.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.emissionOverTime.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.emissionOverTime.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.emissionOverTime.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.emissionOverDistanceref:#/$defs/__schema0 anyOf[1] oneOf (3) no none none Particles emitted per unit of emitter movement
# $.root.particles.emissionOverDistanceref:#/$defs/__schema0 anyOf[1] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.root.particles.emissionOverDistance.typeref:#/$defs/__schema0 anyOf[1] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.emissionOverDistance.valueref:#/$defs/__schema0 anyOf[1] oneOf[0] number yes none none Missing source description
# $.root.particles.emissionOverDistanceref:#/$defs/__schema0 anyOf[1] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.root.particles.emissionOverDistance.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.emissionOverDistance.aref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.emissionOverDistance.bref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.emissionOverDistanceref:#/$defs/__schema0 anyOf[1] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.root.particles.emissionOverDistance.typeref:#/$defs/__schema0 anyOf[1] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.emissionOverDistance.functionsref:#/$defs/__schema0 anyOf[1] oneOf[2] array yes none none Missing source description
# $.root.particles.emissionOverDistance.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.emissionOverDistance.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.emissionOverDistance.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.emissionOverDistance.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.emissionOverDistance.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.emissionOverDistance.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.emissionOverDistance.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.emissionBurstsref:#/$defs/__schema0 anyOf[1] array no none none Timed burst emissions
# $.root.particles.emissionBursts[]ref:#/$defs/__schema0 anyOf[1] object yes none {"additionalProperties":false} Timed particle burst
# $.root.particles.emissionBursts[].timeref:#/$defs/__schema0 anyOf[1] number yes none none Time offset in seconds within the emission cycle
# $.root.particles.emissionBursts[].countref:#/$defs/__schema0 anyOf[1] oneOf (3) yes none none Number of particles to emit
# $.root.particles.emissionBursts[].countref:#/$defs/__schema0 anyOf[1] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.emissionBursts[].count.typeref:#/$defs/__schema0 anyOf[1] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.emissionBursts[].count.valueref:#/$defs/__schema0 anyOf[1] oneOf[0] number yes none none Missing source description
# $.root.particles.emissionBursts[].countref:#/$defs/__schema0 anyOf[1] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.emissionBursts[].count.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.emissionBursts[].count.aref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.emissionBursts[].count.bref:#/$defs/__schema0 anyOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.emissionBursts[].countref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.emissionBursts[].count.typeref:#/$defs/__schema0 anyOf[1] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.emissionBursts[].count.functionsref:#/$defs/__schema0 anyOf[1] oneOf[2] array yes none none Missing source description
# $.root.particles.emissionBursts[].count.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.emissionBursts[].count.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.emissionBursts[].count.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.emissionBursts[].count.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.emissionBursts[].count.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.emissionBursts[].count.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.emissionBursts[].count.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.emissionBursts[].cycleref:#/$defs/__schema0 anyOf[1] number no none none Burst repeat interval in seconds
# $.root.particles.emissionBursts[].intervalref:#/$defs/__schema0 anyOf[1] number no none none Delay between burst repetitions
# $.root.particles.emissionBursts[].probabilityref:#/$defs/__schema0 anyOf[1] number no none none Chance of burst firing (0–1)
# $.root.particles.behaviorsref:#/$defs/__schema0 anyOf[1] array no none none Behaviors applied to particles over their lifetime
# $.root.particles.behaviors[]ref:#/$defs/__schema0 anyOf[1] oneOf (14) yes none none Particle behavior applied over lifetime
# $.root.particles.behaviors[]ref:#/$defs/__schema0 anyOf[1] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].typeref:#/$defs/__schema0 anyOf[1] oneOf[0] const "ApplyForce" yes none {"const":"ApplyForce"} Missing source description
# $.root.particles.behaviors[].directionref:#/$defs/__schema0 anyOf[1] oneOf[0] array yes none none Force direction vector
# $.root.particles.behaviors[].direction[0]ref:#/$defs/__schema0 anyOf[1] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].direction[1]ref:#/$defs/__schema0 anyOf[1] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].direction[2]ref:#/$defs/__schema0 anyOf[1] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].magnituderef:#/$defs/__schema0 anyOf[1] oneOf[0] oneOf (3) yes none none Force magnitude
# $.root.particles.behaviors[].magnituderef:#/$defs/__schema0 anyOf[1] oneOf[0] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].magnitude.typeref:#/$defs/__schema0 anyOf[1] oneOf[0] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.behaviors[].magnitude.valueref:#/$defs/__schema0 anyOf[1] oneOf[0] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].magnituderef:#/$defs/__schema0 anyOf[1] oneOf[0] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].magnitude.typeref:#/$defs/__schema0 anyOf[1] oneOf[0] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.behaviors[].magnitude.aref:#/$defs/__schema0 anyOf[1] oneOf[0] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].magnitude.bref:#/$defs/__schema0 anyOf[1] oneOf[0] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].magnituderef:#/$defs/__schema0 anyOf[1] oneOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].magnitude.typeref:#/$defs/__schema0 anyOf[1] oneOf[0] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.behaviors[].magnitude.functionsref:#/$defs/__schema0 anyOf[1] oneOf[0] oneOf[2] array yes none none Missing source description
# $.root.particles.behaviors[].magnitude.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].magnitude.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[0] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].magnitude.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].magnitude.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].magnitude.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].magnitude.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].magnitude.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[0] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[]ref:#/$defs/__schema0 anyOf[1] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].typeref:#/$defs/__schema0 anyOf[1] oneOf[1] const "ColorOverLife" yes none {"const":"ColorOverLife"} Missing source description
# $.root.particles.behaviors[].colorref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf (4) yes none none Color curve over particle lifetime
# $.root.particles.behaviors[].colorref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[0] const "ConstantColor" yes none {"const":"ConstantColor"} Missing source description
# $.root.particles.behaviors[].color.colorref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.color.rref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].color.color.gref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].color.color.bref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].color.color.aref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].colorref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[1] const "ColorRange" yes none {"const":"ColorRange"} Missing source description
# $.root.particles.behaviors[].color.aref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.a.rref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].color.a.gref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].color.a.bref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].color.a.aref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].color.bref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.b.rref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].color.b.gref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].color.b.bref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].color.b.aref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].colorref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[2] const "Gradient" yes none {"const":"Gradient"} Missing source description
# $.root.particles.behaviors[].color.colorref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.color.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[2] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.root.particles.behaviors[].color.color.subTyperef:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[2] const "Color" yes none {"const":"Color"} Missing source description
# $.root.particles.behaviors[].color.color.keysref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[2] array yes none none Missing source description
# $.root.particles.behaviors[].color.color.keys[]ref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.color.keys[].valueref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.color.keys[].value.rref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].color.color.keys[].value.gref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].color.color.keys[].value.bref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].color.color.keys[].posref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].color.alpharef:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.alpha.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[2] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.root.particles.behaviors[].color.alpha.subTyperef:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[2] const "Number" yes none {"const":"Number"} Missing source description
# $.root.particles.behaviors[].color.alpha.keysref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[2] array yes none none Missing source description
# $.root.particles.behaviors[].color.alpha.keys[]ref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.alpha.keys[].valueref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].color.alpha.keys[].posref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].colorref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] const "RandomColorBetweenGradient" yes none {"const":"RandomColorBetweenGradient"} Missing source description
# $.root.particles.behaviors[].color.gradient1ref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.gradient1.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] const "Gradient" yes none {"const":"Gradient"} Missing source description
# $.root.particles.behaviors[].color.gradient1.colorref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.gradient1.color.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.root.particles.behaviors[].color.gradient1.color.subTyperef:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] const "Color" yes none {"const":"Color"} Missing source description
# $.root.particles.behaviors[].color.gradient1.color.keysref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] array yes none none Missing source description
# $.root.particles.behaviors[].color.gradient1.color.keys[]ref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.gradient1.color.keys[].valueref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.gradient1.color.keys[].value.rref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] number yes none none Missing source description
# $.root.particles.behaviors[].color.gradient1.color.keys[].value.gref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] number yes none none Missing source description
# $.root.particles.behaviors[].color.gradient1.color.keys[].value.bref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] number yes none none Missing source description
# $.root.particles.behaviors[].color.gradient1.color.keys[].posref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] number yes none none Missing source description
# $.root.particles.behaviors[].color.gradient1.alpharef:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.gradient1.alpha.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.root.particles.behaviors[].color.gradient1.alpha.subTyperef:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] const "Number" yes none {"const":"Number"} Missing source description
# $.root.particles.behaviors[].color.gradient1.alpha.keysref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] array yes none none Missing source description
# $.root.particles.behaviors[].color.gradient1.alpha.keys[]ref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.gradient1.alpha.keys[].valueref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] number yes none none Missing source description
# $.root.particles.behaviors[].color.gradient1.alpha.keys[].posref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] number yes none none Missing source description
# $.root.particles.behaviors[].color.gradient2ref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.gradient2.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] const "Gradient" yes none {"const":"Gradient"} Missing source description
# $.root.particles.behaviors[].color.gradient2.colorref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.gradient2.color.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.root.particles.behaviors[].color.gradient2.color.subTyperef:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] const "Color" yes none {"const":"Color"} Missing source description
# $.root.particles.behaviors[].color.gradient2.color.keysref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] array yes none none Missing source description
# $.root.particles.behaviors[].color.gradient2.color.keys[]ref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.gradient2.color.keys[].valueref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.gradient2.color.keys[].value.rref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] number yes none none Missing source description
# $.root.particles.behaviors[].color.gradient2.color.keys[].value.gref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] number yes none none Missing source description
# $.root.particles.behaviors[].color.gradient2.color.keys[].value.bref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] number yes none none Missing source description
# $.root.particles.behaviors[].color.gradient2.color.keys[].posref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] number yes none none Missing source description
# $.root.particles.behaviors[].color.gradient2.alpharef:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.gradient2.alpha.typeref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] const "CLinearFunction" yes none {"const":"CLinearFunction"} Missing source description
# $.root.particles.behaviors[].color.gradient2.alpha.subTyperef:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] const "Number" yes none {"const":"Number"} Missing source description
# $.root.particles.behaviors[].color.gradient2.alpha.keysref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] array yes none none Missing source description
# $.root.particles.behaviors[].color.gradient2.alpha.keys[]ref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].color.gradient2.alpha.keys[].valueref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] number yes none none Missing source description
# $.root.particles.behaviors[].color.gradient2.alpha.keys[].posref:#/$defs/__schema0 anyOf[1] oneOf[1] oneOf[3] number yes none none Missing source description
# $.root.particles.behaviors[]ref:#/$defs/__schema0 anyOf[1] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].typeref:#/$defs/__schema0 anyOf[1] oneOf[2] const "SizeOverLife" yes none {"const":"SizeOverLife"} Missing source description
# $.root.particles.behaviors[].sizeref:#/$defs/__schema0 anyOf[1] oneOf[2] oneOf (3) yes none none Size curve over particle lifetime
# $.root.particles.behaviors[].sizeref:#/$defs/__schema0 anyOf[1] oneOf[2] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].size.typeref:#/$defs/__schema0 anyOf[1] oneOf[2] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.behaviors[].size.valueref:#/$defs/__schema0 anyOf[1] oneOf[2] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].sizeref:#/$defs/__schema0 anyOf[1] oneOf[2] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].size.typeref:#/$defs/__schema0 anyOf[1] oneOf[2] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.behaviors[].size.aref:#/$defs/__schema0 anyOf[1] oneOf[2] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].size.bref:#/$defs/__schema0 anyOf[1] oneOf[2] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].sizeref:#/$defs/__schema0 anyOf[1] oneOf[2] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].size.typeref:#/$defs/__schema0 anyOf[1] oneOf[2] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.behaviors[].size.functionsref:#/$defs/__schema0 anyOf[1] oneOf[2] oneOf[2] array yes none none Missing source description
# $.root.particles.behaviors[].size.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[2] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].size.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[2] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].size.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[2] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].size.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[2] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].size.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[2] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].size.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[2] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].size.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[2] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[]ref:#/$defs/__schema0 anyOf[1] oneOf[3] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].typeref:#/$defs/__schema0 anyOf[1] oneOf[3] const "SpeedOverLife" yes none {"const":"SpeedOverLife"} Missing source description
# $.root.particles.behaviors[].speedref:#/$defs/__schema0 anyOf[1] oneOf[3] oneOf (3) yes none none Speed multiplier curve over lifetime
# $.root.particles.behaviors[].speedref:#/$defs/__schema0 anyOf[1] oneOf[3] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].speed.typeref:#/$defs/__schema0 anyOf[1] oneOf[3] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.behaviors[].speed.valueref:#/$defs/__schema0 anyOf[1] oneOf[3] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].speedref:#/$defs/__schema0 anyOf[1] oneOf[3] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].speed.typeref:#/$defs/__schema0 anyOf[1] oneOf[3] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.behaviors[].speed.aref:#/$defs/__schema0 anyOf[1] oneOf[3] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].speed.bref:#/$defs/__schema0 anyOf[1] oneOf[3] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].speedref:#/$defs/__schema0 anyOf[1] oneOf[3] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].speed.typeref:#/$defs/__schema0 anyOf[1] oneOf[3] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.behaviors[].speed.functionsref:#/$defs/__schema0 anyOf[1] oneOf[3] oneOf[2] array yes none none Missing source description
# $.root.particles.behaviors[].speed.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[3] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].speed.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[3] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].speed.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[3] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].speed.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[3] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].speed.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[3] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].speed.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[3] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].speed.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[3] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[]ref:#/$defs/__schema0 anyOf[1] oneOf[4] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].typeref:#/$defs/__schema0 anyOf[1] oneOf[4] const "RotationOverLife" yes none {"const":"RotationOverLife"} Missing source description
# $.root.particles.behaviors[].angularVelocityref:#/$defs/__schema0 anyOf[1] oneOf[4] oneOf (3) yes none none Angular velocity in radians/sec
# $.root.particles.behaviors[].angularVelocityref:#/$defs/__schema0 anyOf[1] oneOf[4] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].angularVelocity.typeref:#/$defs/__schema0 anyOf[1] oneOf[4] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.behaviors[].angularVelocity.valueref:#/$defs/__schema0 anyOf[1] oneOf[4] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].angularVelocityref:#/$defs/__schema0 anyOf[1] oneOf[4] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].angularVelocity.typeref:#/$defs/__schema0 anyOf[1] oneOf[4] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.behaviors[].angularVelocity.aref:#/$defs/__schema0 anyOf[1] oneOf[4] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].angularVelocity.bref:#/$defs/__schema0 anyOf[1] oneOf[4] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].angularVelocityref:#/$defs/__schema0 anyOf[1] oneOf[4] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].angularVelocity.typeref:#/$defs/__schema0 anyOf[1] oneOf[4] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.behaviors[].angularVelocity.functionsref:#/$defs/__schema0 anyOf[1] oneOf[4] oneOf[2] array yes none none Missing source description
# $.root.particles.behaviors[].angularVelocity.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[4] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].angularVelocity.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[4] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].angularVelocity.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[4] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].angularVelocity.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[4] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].angularVelocity.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[4] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].angularVelocity.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[4] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].angularVelocity.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[4] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[]ref:#/$defs/__schema0 anyOf[1] oneOf[5] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].typeref:#/$defs/__schema0 anyOf[1] oneOf[5] const "ForceOverLife" yes none {"const":"ForceOverLife"} Missing source description
# $.root.particles.behaviors[].xref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf (3) yes none none Force along X axis over lifetime
# $.root.particles.behaviors[].xref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].x.typeref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.behaviors[].x.valueref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].xref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].x.typeref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.behaviors[].x.aref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].x.bref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].xref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].x.typeref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.behaviors[].x.functionsref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] array yes none none Missing source description
# $.root.particles.behaviors[].x.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].x.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].x.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].x.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].x.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].x.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].x.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].yref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf (3) yes none none Force along Y axis over lifetime
# $.root.particles.behaviors[].yref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].y.typeref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.behaviors[].y.valueref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].yref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].y.typeref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.behaviors[].y.aref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].y.bref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].yref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].y.typeref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.behaviors[].y.functionsref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] array yes none none Missing source description
# $.root.particles.behaviors[].y.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].y.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].y.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].y.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].y.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].y.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].y.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].zref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf (3) yes none none Force along Z axis over lifetime
# $.root.particles.behaviors[].zref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].z.typeref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.behaviors[].z.valueref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].zref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].z.typeref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.behaviors[].z.aref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].z.bref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].zref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].z.typeref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.behaviors[].z.functionsref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] array yes none none Missing source description
# $.root.particles.behaviors[].z.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].z.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].z.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].z.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].z.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].z.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].z.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[5] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[]ref:#/$defs/__schema0 anyOf[1] oneOf[6] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].typeref:#/$defs/__schema0 anyOf[1] oneOf[6] const "OrbitOverLife" yes none {"const":"OrbitOverLife"} Missing source description
# $.root.particles.behaviors[].orbitSpeedref:#/$defs/__schema0 anyOf[1] oneOf[6] oneOf (3) yes none none Orbit speed over lifetime
# $.root.particles.behaviors[].orbitSpeedref:#/$defs/__schema0 anyOf[1] oneOf[6] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].orbitSpeed.typeref:#/$defs/__schema0 anyOf[1] oneOf[6] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.behaviors[].orbitSpeed.valueref:#/$defs/__schema0 anyOf[1] oneOf[6] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].orbitSpeedref:#/$defs/__schema0 anyOf[1] oneOf[6] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].orbitSpeed.typeref:#/$defs/__schema0 anyOf[1] oneOf[6] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.behaviors[].orbitSpeed.aref:#/$defs/__schema0 anyOf[1] oneOf[6] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].orbitSpeed.bref:#/$defs/__schema0 anyOf[1] oneOf[6] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].orbitSpeedref:#/$defs/__schema0 anyOf[1] oneOf[6] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].orbitSpeed.typeref:#/$defs/__schema0 anyOf[1] oneOf[6] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.behaviors[].orbitSpeed.functionsref:#/$defs/__schema0 anyOf[1] oneOf[6] oneOf[2] array yes none none Missing source description
# $.root.particles.behaviors[].orbitSpeed.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[6] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].orbitSpeed.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[6] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].orbitSpeed.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[6] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].orbitSpeed.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[6] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].orbitSpeed.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[6] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].orbitSpeed.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[6] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].orbitSpeed.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[6] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].axisref:#/$defs/__schema0 anyOf[1] oneOf[6] array no none none Orbit axis. Defaults to [0, 1, 0]
# $.root.particles.behaviors[].axis[0]ref:#/$defs/__schema0 anyOf[1] oneOf[6] number yes none none Missing source description
# $.root.particles.behaviors[].axis[1]ref:#/$defs/__schema0 anyOf[1] oneOf[6] number yes none none Missing source description
# $.root.particles.behaviors[].axis[2]ref:#/$defs/__schema0 anyOf[1] oneOf[6] number yes none none Missing source description
# $.root.particles.behaviors[]ref:#/$defs/__schema0 anyOf[1] oneOf[7] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].typeref:#/$defs/__schema0 anyOf[1] oneOf[7] const "Noise" yes none {"const":"Noise"} Missing source description
# $.root.particles.behaviors[].frequencyref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf (3) yes none none Noise frequency
# $.root.particles.behaviors[].frequencyref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].frequency.typeref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.behaviors[].frequency.valueref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].frequencyref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].frequency.typeref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.behaviors[].frequency.aref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].frequency.bref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].frequencyref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].frequency.typeref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.behaviors[].frequency.functionsref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] array yes none none Missing source description
# $.root.particles.behaviors[].frequency.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].frequency.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].frequency.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].frequency.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].frequency.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].frequency.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].frequency.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].powerref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf (3) yes none none Noise amplitude
# $.root.particles.behaviors[].powerref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].power.typeref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.behaviors[].power.valueref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].powerref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].power.typeref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.behaviors[].power.aref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].power.bref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].powerref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].power.typeref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.behaviors[].power.functionsref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] array yes none none Missing source description
# $.root.particles.behaviors[].power.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].power.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].power.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].power.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].power.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].power.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].power.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].positionAmountref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf (3) no none none Position displacement amount
# $.root.particles.behaviors[].positionAmountref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].positionAmount.typeref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.behaviors[].positionAmount.valueref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].positionAmountref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].positionAmount.typeref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.behaviors[].positionAmount.aref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].positionAmount.bref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].positionAmountref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].positionAmount.typeref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.behaviors[].positionAmount.functionsref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] array yes none none Missing source description
# $.root.particles.behaviors[].positionAmount.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].positionAmount.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].positionAmount.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].positionAmount.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].positionAmount.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].positionAmount.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].positionAmount.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].rotationAmountref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf (3) no none none Rotation displacement amount
# $.root.particles.behaviors[].rotationAmountref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[0] object no none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].rotationAmount.typeref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.behaviors[].rotationAmount.valueref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].rotationAmountref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[1] object no none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].rotationAmount.typeref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.behaviors[].rotationAmount.aref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].rotationAmount.bref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].rotationAmountref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] object no none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].rotationAmount.typeref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.behaviors[].rotationAmount.functionsref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] array yes none none Missing source description
# $.root.particles.behaviors[].rotationAmount.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].rotationAmount.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].rotationAmount.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].rotationAmount.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].rotationAmount.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].rotationAmount.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].rotationAmount.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[7] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[]ref:#/$defs/__schema0 anyOf[1] oneOf[8] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].typeref:#/$defs/__schema0 anyOf[1] oneOf[8] const "TurbulenceField" yes none {"const":"TurbulenceField"} Missing source description
# $.root.particles.behaviors[].scaleref:#/$defs/__schema0 anyOf[1] oneOf[8] array yes none none Turbulence field scale
# $.root.particles.behaviors[].scale[0]ref:#/$defs/__schema0 anyOf[1] oneOf[8] number yes none none Missing source description
# $.root.particles.behaviors[].scale[1]ref:#/$defs/__schema0 anyOf[1] oneOf[8] number yes none none Missing source description
# $.root.particles.behaviors[].scale[2]ref:#/$defs/__schema0 anyOf[1] oneOf[8] number yes none none Missing source description
# $.root.particles.behaviors[].octavesref:#/$defs/__schema0 anyOf[1] oneOf[8] integer yes none {"minimum":-9007199254740991,"maximum":9007199254740991} Noise octave count
# $.root.particles.behaviors[].velocityMultiplierref:#/$defs/__schema0 anyOf[1] oneOf[8] array yes none none Velocity multiplier per axis
# $.root.particles.behaviors[].velocityMultiplier[0]ref:#/$defs/__schema0 anyOf[1] oneOf[8] number yes none none Missing source description
# $.root.particles.behaviors[].velocityMultiplier[1]ref:#/$defs/__schema0 anyOf[1] oneOf[8] number yes none none Missing source description
# $.root.particles.behaviors[].velocityMultiplier[2]ref:#/$defs/__schema0 anyOf[1] oneOf[8] number yes none none Missing source description
# $.root.particles.behaviors[].timeScaleref:#/$defs/__schema0 anyOf[1] oneOf[8] array yes none none Time scale per axis
# $.root.particles.behaviors[].timeScale[0]ref:#/$defs/__schema0 anyOf[1] oneOf[8] number yes none none Missing source description
# $.root.particles.behaviors[].timeScale[1]ref:#/$defs/__schema0 anyOf[1] oneOf[8] number yes none none Missing source description
# $.root.particles.behaviors[].timeScale[2]ref:#/$defs/__schema0 anyOf[1] oneOf[8] number yes none none Missing source description
# $.root.particles.behaviors[]ref:#/$defs/__schema0 anyOf[1] oneOf[9] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].typeref:#/$defs/__schema0 anyOf[1] oneOf[9] const "FrameOverLife" yes none {"const":"FrameOverLife"} Missing source description
# $.root.particles.behaviors[].frameref:#/$defs/__schema0 anyOf[1] oneOf[9] oneOf (3) yes none none Sprite sheet frame index over lifetime
# $.root.particles.behaviors[].frameref:#/$defs/__schema0 anyOf[1] oneOf[9] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].frame.typeref:#/$defs/__schema0 anyOf[1] oneOf[9] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.behaviors[].frame.valueref:#/$defs/__schema0 anyOf[1] oneOf[9] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].frameref:#/$defs/__schema0 anyOf[1] oneOf[9] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].frame.typeref:#/$defs/__schema0 anyOf[1] oneOf[9] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.behaviors[].frame.aref:#/$defs/__schema0 anyOf[1] oneOf[9] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].frame.bref:#/$defs/__schema0 anyOf[1] oneOf[9] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].frameref:#/$defs/__schema0 anyOf[1] oneOf[9] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].frame.typeref:#/$defs/__schema0 anyOf[1] oneOf[9] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.behaviors[].frame.functionsref:#/$defs/__schema0 anyOf[1] oneOf[9] oneOf[2] array yes none none Missing source description
# $.root.particles.behaviors[].frame.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[9] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].frame.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[9] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].frame.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[9] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].frame.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[9] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].frame.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[9] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].frame.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[9] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].frame.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[9] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[]ref:#/$defs/__schema0 anyOf[1] oneOf[10] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].typeref:#/$defs/__schema0 anyOf[1] oneOf[10] const "LimitSpeedOverLife" yes none {"const":"LimitSpeedOverLife"} Missing source description
# $.root.particles.behaviors[].speedref:#/$defs/__schema0 anyOf[1] oneOf[10] oneOf (3) yes none none Maximum speed over lifetime
# $.root.particles.behaviors[].speedref:#/$defs/__schema0 anyOf[1] oneOf[10] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].speed.typeref:#/$defs/__schema0 anyOf[1] oneOf[10] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.behaviors[].speed.valueref:#/$defs/__schema0 anyOf[1] oneOf[10] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].speedref:#/$defs/__schema0 anyOf[1] oneOf[10] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].speed.typeref:#/$defs/__schema0 anyOf[1] oneOf[10] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.behaviors[].speed.aref:#/$defs/__schema0 anyOf[1] oneOf[10] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].speed.bref:#/$defs/__schema0 anyOf[1] oneOf[10] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].speedref:#/$defs/__schema0 anyOf[1] oneOf[10] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].speed.typeref:#/$defs/__schema0 anyOf[1] oneOf[10] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.behaviors[].speed.functionsref:#/$defs/__schema0 anyOf[1] oneOf[10] oneOf[2] array yes none none Missing source description
# $.root.particles.behaviors[].speed.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[10] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].speed.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[10] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].speed.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[10] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].speed.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[10] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].speed.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[10] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].speed.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[10] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].speed.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[10] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].dampenref:#/$defs/__schema0 anyOf[1] oneOf[10] number yes none none Damping factor when speed exceeds limit (0–1)
# $.root.particles.behaviors[]ref:#/$defs/__schema0 anyOf[1] oneOf[11] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].typeref:#/$defs/__schema0 anyOf[1] oneOf[11] const "ChangeEmitDirection" yes none {"const":"ChangeEmitDirection"} Missing source description
# $.root.particles.behaviors[].angleref:#/$defs/__schema0 anyOf[1] oneOf[11] oneOf (3) yes none none Angle deviation from original emit direction
# $.root.particles.behaviors[].angleref:#/$defs/__schema0 anyOf[1] oneOf[11] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].angle.typeref:#/$defs/__schema0 anyOf[1] oneOf[11] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.behaviors[].angle.valueref:#/$defs/__schema0 anyOf[1] oneOf[11] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].angleref:#/$defs/__schema0 anyOf[1] oneOf[11] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].angle.typeref:#/$defs/__schema0 anyOf[1] oneOf[11] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.behaviors[].angle.aref:#/$defs/__schema0 anyOf[1] oneOf[11] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].angle.bref:#/$defs/__schema0 anyOf[1] oneOf[11] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].angleref:#/$defs/__schema0 anyOf[1] oneOf[11] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].angle.typeref:#/$defs/__schema0 anyOf[1] oneOf[11] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.behaviors[].angle.functionsref:#/$defs/__schema0 anyOf[1] oneOf[11] oneOf[2] array yes none none Missing source description
# $.root.particles.behaviors[].angle.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[11] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].angle.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[11] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].angle.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[11] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].angle.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[11] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].angle.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[11] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].angle.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[11] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].angle.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[11] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[]ref:#/$defs/__schema0 anyOf[1] oneOf[12] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].typeref:#/$defs/__schema0 anyOf[1] oneOf[12] const "GravityForce" yes none {"const":"GravityForce"} Missing source description
# $.root.particles.behaviors[].centerref:#/$defs/__schema0 anyOf[1] oneOf[12] array yes none none Gravity center point
# $.root.particles.behaviors[].center[0]ref:#/$defs/__schema0 anyOf[1] oneOf[12] number yes none none Missing source description
# $.root.particles.behaviors[].center[1]ref:#/$defs/__schema0 anyOf[1] oneOf[12] number yes none none Missing source description
# $.root.particles.behaviors[].center[2]ref:#/$defs/__schema0 anyOf[1] oneOf[12] number yes none none Missing source description
# $.root.particles.behaviors[].magnituderef:#/$defs/__schema0 anyOf[1] oneOf[12] number yes none none Gravity force strength
# $.root.particles.behaviors[]ref:#/$defs/__schema0 anyOf[1] oneOf[13] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].typeref:#/$defs/__schema0 anyOf[1] oneOf[13] const "WidthOverLength" yes none {"const":"WidthOverLength"} Missing source description
# $.root.particles.behaviors[].widthref:#/$defs/__schema0 anyOf[1] oneOf[13] oneOf (3) yes none none Trail width over trail length
# $.root.particles.behaviors[].widthref:#/$defs/__schema0 anyOf[1] oneOf[13] oneOf[0] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].width.typeref:#/$defs/__schema0 anyOf[1] oneOf[13] oneOf[0] const "ConstantValue" yes none {"const":"ConstantValue"} Missing source description
# $.root.particles.behaviors[].width.valueref:#/$defs/__schema0 anyOf[1] oneOf[13] oneOf[0] number yes none none Missing source description
# $.root.particles.behaviors[].widthref:#/$defs/__schema0 anyOf[1] oneOf[13] oneOf[1] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].width.typeref:#/$defs/__schema0 anyOf[1] oneOf[13] oneOf[1] const "IntervalValue" yes none {"const":"IntervalValue"} Missing source description
# $.root.particles.behaviors[].width.aref:#/$defs/__schema0 anyOf[1] oneOf[13] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].width.bref:#/$defs/__schema0 anyOf[1] oneOf[13] oneOf[1] number yes none none Missing source description
# $.root.particles.behaviors[].widthref:#/$defs/__schema0 anyOf[1] oneOf[13] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].width.typeref:#/$defs/__schema0 anyOf[1] oneOf[13] oneOf[2] const "PiecewiseBezier" yes none {"const":"PiecewiseBezier"} Missing source description
# $.root.particles.behaviors[].width.functionsref:#/$defs/__schema0 anyOf[1] oneOf[13] oneOf[2] array yes none none Missing source description
# $.root.particles.behaviors[].width.functions[]ref:#/$defs/__schema0 anyOf[1] oneOf[13] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].width.functions[].functionref:#/$defs/__schema0 anyOf[1] oneOf[13] oneOf[2] object yes none {"additionalProperties":false} Missing source description
# $.root.particles.behaviors[].width.functions[].function.p0ref:#/$defs/__schema0 anyOf[1] oneOf[13] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].width.functions[].function.p1ref:#/$defs/__schema0 anyOf[1] oneOf[13] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].width.functions[].function.p2ref:#/$defs/__schema0 anyOf[1] oneOf[13] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].width.functions[].function.p3ref:#/$defs/__schema0 anyOf[1] oneOf[13] oneOf[2] number yes none none Missing source description
# $.root.particles.behaviors[].width.functions[].startref:#/$defs/__schema0 anyOf[1] oneOf[13] oneOf[2] number yes none none Missing source description
# $.root.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.)
# $.root.particles.worldSpaceref:#/$defs/__schema0 anyOf[1] boolean no none none Simulate particles in world space instead of local space
# $.root.particles.renderOrderref:#/$defs/__schema0 anyOf[1] number no none none Render order for sorting (higher = rendered later)
# $.root.particles.uTileCountref:#/$defs/__schema0 anyOf[1] integer no none {"minimum":-9007199254740991,"maximum":9007199254740991} Horizontal tile count in sprite sheet
# $.root.particles.vTileCountref:#/$defs/__schema0 anyOf[1] integer no none {"minimum":-9007199254740991,"maximum":9007199254740991} Vertical tile count in sprite sheet
# $.root.particles.blendTilesref:#/$defs/__schema0 anyOf[1] boolean no none none Blend between sprite sheet tiles for smooth animation
# $.root.particles.softParticlesref:#/$defs/__schema0 anyOf[1] boolean no none none Enable soft particle depth fading
# $.root.particles.softFarFaderef:#/$defs/__schema0 anyOf[1] number no none none Far fade distance for soft particles
# $.root.particles.softNearFaderef:#/$defs/__schema0 anyOf[1] number no none none Near fade distance for soft particles
# $.root.particles.materialref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Particle material settings
# $.root.particles.material.typeref:#/$defs/__schema0 anyOf[1] enum (2) no none {"enum":["basic","standard"]} Particle material shading model
# $.root.particles.material.colorref:#/$defs/__schema0 anyOf[1] string no none none Particle color as CSS hex string
# $.root.particles.material.mapref:#/$defs/__schema0 anyOf[1] string no none none Path to particle sprite texture
# $.root.particles.material.blendingref:#/$defs/__schema0 anyOf[1] enum (2) no none {"enum":["normal","additive"]} Blending mode (additive for glowing/fire effects)
# $.root.particles.material.transparentref:#/$defs/__schema0 anyOf[1] boolean no none none Enable transparency
# $.root.particles.material.depthWriteref:#/$defs/__schema0 anyOf[1] boolean no none none Write to depth buffer (disable for additive effects)
# $.root.particles.material.sideref:#/$defs/__schema0 anyOf[1] enum (3) no none {"enum":["front","back","double"]} Which face sides to render
# $.root.splineref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Spline overrides merged with prefab
# $.root.spline.curveTyperef:#/$defs/__schema0 anyOf[1] enum (3) no none {"enum":["centripetal","chordal","catmullrom"]} CatmullRomCurve3 parameterization type. Matches Three.js curveType parameter
# $.root.spline.pointsref:#/$defs/__schema0 anyOf[1] array no none {"minItems":2} Control point positions in local space
# $.root.spline.points[]ref:#/$defs/__schema0 anyOf[1] array yes none none 3D vector as [x, y, z]
# $.root.spline.points[][0]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.root.spline.points[][1]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.root.spline.points[][2]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.root.spline.closedref:#/$defs/__schema0 anyOf[1] boolean no none none Whether the spline forms a closed loop
# $.root.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
# $.root.spline.resolutionref:#/$defs/__schema0 anyOf[1] number no none none Number of line segments for rendering the curve
# $.root.jointsref:#/$defs/__schema0 anyOf[1] array no none none Physics joints connecting to other bodies
# $.root.joints[]ref:#/$defs/__schema0 anyOf[1] object yes none {"additionalProperties":false} Physics joint constraint between two bodies
# $.root.joints[].typeref:#/$defs/__schema0 anyOf[1] enum (5) yes none {"enum":["fixed","revolute","prismatic","spherical","spring"]} Joint constraint type
# $.root.joints[].targetref:#/$defs/__schema0 anyOf[1] string yes none none Entity ID of the body this joint connects to
# $.root.joints[].anchorref:#/$defs/__schema0 anyOf[1] array no none none Local anchor point on this body
# $.root.joints[].anchor[0]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.root.joints[].anchor[1]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.root.joints[].anchor[2]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.root.joints[].targetAnchorref:#/$defs/__schema0 anyOf[1] array no none none Local anchor point on the target body
# $.root.joints[].targetAnchor[0]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.root.joints[].targetAnchor[1]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.root.joints[].targetAnchor[2]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.root.joints[].axisref:#/$defs/__schema0 anyOf[1] array no none none Rotation/slide axis for revolute and prismatic joints
# $.root.joints[].axis[0]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.root.joints[].axis[1]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.root.joints[].axis[2]ref:#/$defs/__schema0 anyOf[1] number yes none none Missing source description
# $.root.joints[].limitsref:#/$defs/__schema0 anyOf[1] object no none {"additionalProperties":false} Angle or distance limits for revolute/prismatic joints
# $.root.joints[].limits.minref:#/$defs/__schema0 anyOf[1] number yes none none Minimum angle (degrees) or distance
# $.root.joints[].limits.maxref:#/$defs/__schema0 anyOf[1] number yes none none Maximum angle (degrees) or distance
# $.root.joints[].stiffnessref:#/$defs/__schema0 anyOf[1] number no none none Spring stiffness coefficient
# $.root.joints[].dampingref:#/$defs/__schema0 anyOf[1] number no none none Spring damping coefficient
# $.root.joints[].restLengthref:#/$defs/__schema0 anyOf[1] number no none none Spring rest length
# $.root.childrenref:#/$defs/__schema0 anyOf[1] array no none none Child entities
# $.root.children[]ref:#/$defs/__schema0 anyOf[1] ref #/$defs/__schema0 yes none none Missing source description