Files
VRyHungry1/addons/yaml/schema/godot_yaml.schema.yaml
T
2026-07-19 10:47:28 +02:00

309 lines
7.6 KiB
YAML

$schema: "http://json-schema.org/draft-07/schema#"
$id: "res://addons/yaml/schema/godot_yaml.schema.yaml"
title: "Godot YAML schema definitions"
definitions:
variantTypes:
description: "Godot Variant types"
enum:
- "bool"
- "float"
- "int"
- "null"
- "AABB"
- "Array"
- "Basis"
- "Callable"
- "Color"
- "Dictionary"
- "NodePath"
- "Object"
- "PackedByteArray"
- "PackedColorArray"
- "PackedFloat32Array"
- "PackedFloat64Array"
- "PackedInt32Array"
- "PackedInt64Array"
- "PackedStringArray"
- "PackedVector2Array"
- "PackedVector3Array"
- "Plane"
- "Projection"
- "Quaternion"
- "Rect2"
- "Rect2i"
- "RID"
- "String"
- "StringName"
- "Transform2D"
- "Transform3D"
- "Variant"
- "Vector2"
- "Vector2i"
- "Vector3"
- "Vector3i"
- "Vector4"
- "Vector4i"
AABB:
x-yaml-tag: AABB
oneOf:
- type: object
properties:
position: { $ref: "#/definitions/Vector3" }
size: { $ref: "#/definitions/Vector3" }
required: [position, size]
additionalProperties: false
- type: array
items: { $ref: "#/definitions/Vector3" }
minItems: 2
maxItems: 2
Basis:
x-yaml-tag: Basis
oneOf:
- type: object
properties:
x: { $ref: "#/definitions/Vector3" }
y: { $ref: "#/definitions/Vector3" }
z: { $ref: "#/definitions/Vector3" }
required: [x, y, z]
additionalProperties: false
- type: array
items: { $ref: "#/definitions/Vector3" }
minItems: 3
maxItems: 3
Color:
x-yaml-tag: Color
oneOf:
- type: string
- type: object
properties:
r: { type: number }
g: { type: number }
b: { type: number }
a: { type: number }
required: [r, g, b]
additionalProperties: false
- type: array
items: { type: number }
minItems: 3
maxItems: 4
NodePath:
x-yaml-tag: NodePath
type: string
PackedByteArray:
x-yaml-tag: PackedByteArray
type: string
contentEncoding: base64
PackedColorArray:
x-yaml-tag: PackedColorArray
type: array
items: { $ref: "#/definitions/Color" }
PackedFloat32Array:
x-yaml-tag: PackedFloat32Array
type: array
items: { type: number }
PackedFloat64Array:
x-yaml-tag: PackedFloat64Array
type: array
items: { type: number }
PackedInt32Array:
x-yaml-tag: PackedInt32Array
type: array
items:
type: integer
minimum: -2147483648
maximum: 2147483647
PackedInt64Array:
x-yaml-tag: PackedInt64Array
type: array
items: { type: integer }
PackedStringArray:
x-yaml-tag: PackedStringArray
type: array
items: { type: string }
Plane:
x-yaml-tag: Plane
oneOf:
- type: object
properties:
normal: { $ref: "#/definitions/Vector3" }
d: { type: number }
required: [normal, d]
additionalProperties: false
- type: array
items:
- { $ref: "#/definitions/Vector3" }
- { type: number }
additionalItems: false
Projection:
x-yaml-tag: Projection
oneOf:
- type: object
properties:
x: { $ref: "#/definitions/Vector4" }
y: { $ref: "#/definitions/Vector4" }
z: { $ref: "#/definitions/Vector4" }
w: { $ref: "#/definitions/Vector4" }
required: [x, y, z, w]
additionalProperties: false
- type: array
items: { $ref: "#/definitions/Vector4" }
minItems: 4
maxItems: 4
Quaternion:
x-yaml-tag: Quaternion
oneOf:
- type: object
properties:
x: { type: number }
y: { type: number }
z: { type: number }
w: { type: number }
required: [x, y, z, w]
additionalProperties: false
- type: array
items: { type: number }
minItems: 4
maxItems: 4
Rect2:
x-yaml-tag: Rect2
oneOf:
- type: object
properties:
position: { $ref: "#/definitions/Vector2" }
size: { $ref: "#/definitions/Vector2" }
required: [position, size]
additionalProperties: false
- type: array
items: { $ref: "#/definitions/Vector2" }
minItems: 2
maxItems: 2
Rect2i:
x-yaml-tag: Rect2i
oneOf:
- type: object
properties:
position: { $ref: "#/definitions/Vector2i" }
size: { $ref: "#/definitions/Vector2i" }
required: [position, size]
additionalProperties: false
- type: array
items: { $ref: "#/definitions/Vector2i" }
minItems: 2
maxItems: 2
StringName:
x-yaml-tag: StringName
type: string
Transform2D:
x-yaml-tag: Transform2D
oneOf:
- type: object
properties:
x: { $ref: "#/definitions/Vector2" }
y: { $ref: "#/definitions/Vector2" }
origin: { $ref: "#/definitions/Vector2" }
required: [x, y, origin]
additionalProperties: false
- type: array
items: { $ref: "#/definitions/Vector2" }
minItems: 2
maxItems: 2
Transform3D:
x-yaml-tag: Transform3D
oneOf:
- type: object
properties:
basis: { $ref: "#/definitions/Basis" }
origin: { $ref: "#/definitions/Vector3" }
required: [basis, origin]
additionalProperties: false
- type: array
items:
- { $ref: "#/definitions/Basis" }
- { $ref: "#/definitions/Vector3" }
additionalItems: false
Vector2:
x-yaml-tag: Vector2
oneOf:
- type: object
properties:
x: { type: number }
y: { type: number }
required: [x, y]
additionalProperties: false
- type: array
items: { type: number }
minItems: 2
maxItems: 2
Vector2i:
x-yaml-tag: Vector2i
oneOf:
- type: object
properties:
x: { type: integer }
y: { type: integer }
required: [x, y]
additionalProperties: false
- type: array
items: { type: integer }
minItems: 2
maxItems: 2
Vector3:
x-yaml-tag: Vector3
oneOf:
- type: object
properties:
x: { type: number }
y: { type: number }
z: { type: number }
required: [x, y, z]
additionalProperties: false
- type: array
items: { type: number }
minItems: 3
maxItems: 3
Vector3i:
x-yaml-tag: Vector3i
oneOf:
- type: object
properties:
x: { type: integer }
y: { type: integer }
z: { type: integer }
required: [x, y, z]
additionalProperties: false
- type: array
items: { type: integer }
minItems: 3
maxItems: 3
Vector4:
x-yaml-tag: Vector4
oneOf:
- type: object
properties:
x: { type: number }
y: { type: number }
z: { type: number }
w: { type: number }
required: [x, y, z, w]
additionalProperties: false
- type: array
items: { type: number }
minItems: 4
maxItems: 4
Vector4i:
x-yaml-tag: Vector4i
oneOf:
- type: object
properties:
x: { type: integer }
y: { type: integer }
z: { type: integer }
w: { type: integer }
required: [x, y, z, w]
additionalProperties: false
- type: array
items: { type: integer }
minItems: 4
maxItems: 4