diff --git a/spec.json b/spec.json index c5edcb2..c985dd7 100644 --- a/spec.json +++ b/spec.json @@ -6452,7 +6452,7 @@ "properties": { "type": { "enum": [ - "Gltf" + "gltf" ], "type": "string" } @@ -6475,7 +6475,7 @@ }, "type": { "enum": [ - "Step" + "step" ], "type": "string" } @@ -6499,7 +6499,7 @@ }, "type": { "enum": [ - "Obj" + "obj" ], "type": "string" }, @@ -6532,7 +6532,7 @@ }, "type": { "enum": [ - "Ply" + "ply" ], "type": "string" }, @@ -6565,7 +6565,7 @@ }, "type": { "enum": [ - "Stl" + "stl" ], "type": "string" }, @@ -7555,10 +7555,16 @@ } ], "description": "The file format to export to." + }, + "scene_id": { + "description": "ID of the scene or an item in the scene to be exported.", + "format": "uuid", + "type": "string" } }, "required": [ - "format" + "format", + "scene_id" ], "type": "object" } @@ -7567,6 +7573,306 @@ "Export" ], "type": "object" + }, + { + "additionalProperties": false, + "description": "What is this entity's parent?", + "properties": { + "EntityGetParentId": { + "properties": { + "entity_id": { + "description": "ID of the entity being queried.", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "entity_id" + ], + "type": "object" + } + }, + "required": [ + "EntityGetParentId" + ], + "type": "object" + }, + { + "additionalProperties": false, + "description": "How many children does the entity have?", + "properties": { + "EntityGetNumChildren": { + "properties": { + "entity_id": { + "description": "ID of the entity being queried.", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "entity_id" + ], + "type": "object" + } + }, + "required": [ + "EntityGetNumChildren" + ], + "type": "object" + }, + { + "additionalProperties": false, + "description": "What is the UUID of this entity's n-th child?", + "properties": { + "EntityGetChildUuid": { + "properties": { + "child_index": { + "description": "Index into the entity's list of children.", + "format": "uint32", + "minimum": 0, + "type": "integer" + }, + "entity_id": { + "description": "ID of the entity being queried.", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "child_index", + "entity_id" + ], + "type": "object" + } + }, + "required": [ + "EntityGetChildUuid" + ], + "type": "object" + }, + { + "additionalProperties": false, + "description": "What are all UUIDs of this entity's children?", + "properties": { + "EntityGetAllChildUuids": { + "properties": { + "entity_id": { + "description": "ID of the entity being queried.", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "entity_id" + ], + "type": "object" + } + }, + "required": [ + "EntityGetAllChildUuids" + ], + "type": "object" + }, + { + "additionalProperties": false, + "description": "Enter edit mode", + "properties": { + "EditModeEnter": { + "properties": { + "target": { + "description": "The edit target", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "target" + ], + "type": "object" + } + }, + "required": [ + "EditModeEnter" + ], + "type": "object" + }, + { + "additionalProperties": false, + "description": "Exit edit mode", + "properties": { + "EditModeExit": { + "type": "object" + } + }, + "required": [ + "EditModeExit" + ], + "type": "object" + }, + { + "additionalProperties": false, + "description": "Modifies the selection by simulating a \"mouse click\" at the given x,y window coordinate Returns ID of whatever was selected.", + "properties": { + "SelectWithPoint": { + "properties": { + "selected_at_window": { + "allOf": [ + { + "$ref": "#/components/schemas/Point2d" + } + ], + "description": "Where in the window was selected" + }, + "selection_type": { + "allOf": [ + { + "$ref": "#/components/schemas/SceneSelectionType" + } + ], + "description": "What entity was selected?" + } + }, + "required": [ + "selected_at_window", + "selection_type" + ], + "type": "object" + } + }, + "required": [ + "SelectWithPoint" + ], + "type": "object" + }, + { + "additionalProperties": false, + "description": "Clear the selection", + "properties": { + "SelectClear": { + "type": "object" + } + }, + "required": [ + "SelectClear" + ], + "type": "object" + }, + { + "additionalProperties": false, + "description": "Adds one or more entities (by UUID) to the selection.", + "properties": { + "SelectAdd": { + "properties": { + "entities": { + "description": "Which entities to select", + "items": { + "format": "uuid", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "entities" + ], + "type": "object" + } + }, + "required": [ + "SelectAdd" + ], + "type": "object" + }, + { + "additionalProperties": false, + "description": "Removes one or more entities (by UUID) from the selection.", + "properties": { + "SelectRemove": { + "properties": { + "entities": { + "description": "Which entities to unselect", + "items": { + "format": "uuid", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "entities" + ], + "type": "object" + } + }, + "required": [ + "SelectRemove" + ], + "type": "object" + }, + { + "additionalProperties": false, + "description": "Find all IDs of selected entities", + "properties": { + "SelectGet": { + "type": "object" + } + }, + "required": [ + "SelectGet" + ], + "type": "object" + }, + { + "additionalProperties": false, + "description": "Changes the current highlighted entity to whichever one is at the given window coordinate. If there's no entity at this location, clears the highlight.", + "properties": { + "HighlightSetEntity": { + "properties": { + "selected_at_window": { + "allOf": [ + { + "$ref": "#/components/schemas/Point2d" + } + ], + "description": "Coordinates of the window being clicked" + } + }, + "required": [ + "selected_at_window" + ], + "type": "object" + } + }, + "required": [ + "HighlightSetEntity" + ], + "type": "object" + }, + { + "additionalProperties": false, + "description": "Changes the current highlighted entity to these entities.", + "properties": { + "HighlightSetEntities": { + "properties": { + "entities": { + "description": "Highlight these entities.", + "items": { + "format": "uuid", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "entities" + ], + "type": "object" + } + }, + "required": [ + "HighlightSetEntities" + ], + "type": "object" } ] }, @@ -7850,7 +8156,7 @@ }, "type": { "enum": [ - "Gltf" + "gltf" ], "type": "string" } @@ -7874,7 +8180,7 @@ }, "type": { "enum": [ - "Obj" + "obj" ], "type": "string" } @@ -7906,7 +8212,7 @@ }, "type": { "enum": [ - "Ply" + "ply" ], "type": "string" } @@ -7931,7 +8237,7 @@ }, "type": { "enum": [ - "Step" + "step" ], "type": "string" } @@ -7963,7 +8269,7 @@ }, "type": { "enum": [ - "Stl" + "stl" ], "type": "string" } @@ -8665,6 +8971,32 @@ }, "type": "object" }, + "SceneSelectionType": { + "description": "The type of scene selection change", + "oneOf": [ + { + "description": "Replaces the selection", + "enum": [ + "replace" + ], + "type": "string" + }, + { + "description": "Adds to the selection", + "enum": [ + "add" + ], + "type": "string" + }, + { + "description": "Removes from the selection", + "enum": [ + "remove" + ], + "type": "string" + } + ] + }, "Session": { "description": "An authentication session.\n\nFor our UIs, these are automatically created by Next.js.", "properties": {