oxidecomputer / oxidecomputer/typify
Issue with schema props
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 898
- Forks
- 114
- Avg merge
- 4h 18m
- Merged PRs (30d)
- 14
Description
.1.0 (C:\Users\miner\OneDrive\Documents\GitHub\Androecia\FriendConnect-rs\minecraft-bedrock-schemas-rs)`
Caused by:
process didn't exit successfully: C:\Users\miner\OneDrive\Documents\GitHub\Androecia\FriendConnect-rs\minecraft-bedrock-schemas-rs\target\debug\build\minecraft-bedrock-schemas-89cec1978fa2cbc3\build-script-build (exit code: 101)
--- stdout
Writing to: .\src\behavior\animations\animations.rs
Writing to: .\src\behavior\animation_controllers\animation_controller.rs
--- stderr
thread 'main' panicked at 'not yet implemented: invalid (or unexpected) schema:
SchemaObject {
metadata: Some(
Metadata {
id: None,
title: Some(
"Transition",
),
description: Some(
"The transition definition for.",
),
default: None,
deprecated: false,
read_only: false,
write_only: false,
examples: [],
},
),
instance_type: Some(
Single(
Array,
),
),
format: None,
enum_values: None,
const_value: None,
subschemas: None,
number: None,
string: None,
array: Some(
ArrayValidation {
items: Some(
Single(
Object(
SchemaObject {
metadata: Some(
Metadata {
id: None,
title: Some(
"Transition",
),
description: Some(
"A transition to another state.",
),
default: None,
deprecated: false,
read_only: false,
write_only: false,
examples: [
Object {
"default": String("query.is_chested"),
},
],
},
),
instance_type: Some(
Single(
Object,
),
),
format: None,
enum_values: None,
const_value: None,
subschemas: None,
number: None,
string: None,
array: None,
object: Some(
ObjectValidation {
max_properties: Some(
1,
),
min_properties: Some(
1,
),
required: {},
properties: {},
pattern_properties: {},
additional_properties: Some(
Object(
SchemaObject {
metadata: None,
instance_type: None,
format: None,
enum_values: None,
const_value: None,
subschemas: None,
number: None,
string: None,
array: None,
object: None,
reference: Some(
"#/definitions/A",
),
extensions: {},
},
),
),
property_names: None,
},
),
reference: None,
extensions: {},
},
),
),
),
additional_items: None,
max_items: None,
min_items: None,
unique_items: None,
contains: None,
},
),
object: Some(
ObjectValidation {
max_properties: None,
min_properties: Some(
1,
),
required: {},
properties: {},
pattern_properties: {},
additional_properties: None,
property_names: None,
},
),
reference: None,
extensions: {},
}', typify\typify-impl\src\convert.rs:551:36
{
"$schema": "http://json-schema.org/draft-07/schema",
"$id": "blockception.minecraft.behavior.animation_controller",
"examples": [
{
"format_version": "1.19.0",
"animation_controllers": {
"controller.animation.example": {
"initial_state": "default",
"states": {
"default": {
"transitions": [
{
"state_1": "query.is_baby"
}
]
},
"state_1": {}
}
}
}
}
],
"definitions": {
"animationspec": {
"anyOf": [
{
"title": "Animation Specification",
"description": "A single string that specifies which animation there are.",
"type": "string"
},
{
"type": "object",
"title": "Animation Specification",
"description": "A object specification on when to animate.",
"maxProperties": 1,
"minProperties": 1,
"additionalProperties": {
"$ref": "#/definitions/A"
}
}
]
},
"particle_effect_spec": {
"additionalProperties": false,
"type": "object",
"required": [
"effect"
],
"properties": {
"bind_to_actor": {
"type": "boolean",
"title": "Bind To Actor",
"description": "Set to false to have the effect spawned in the world without being bound to an actor (by default an effect is bound to the actor).",
"const": false
},
"effect": {
"type": "string",
"title": "Effect",
"description": "The name of a particle effect that should be played."
},
"locator": {
"type": "string",
"title": "Locator",
"description": "The name of a locator on the actor where the effect should be located."
},
"pre_effect_script": {
"type": "string",
"title": "Pre Effect Script",
"description": "A molang script that will be run when the particle emitter is initialized."
}
}
},
"commands": {
"type": "string",
"description": "The event or commands to execute.",
"title": "Commands",
"oneOf": [
{
"pattern": "^@s .+$",
"title": "Event"
},
{
"pattern": "^/.+$",
"title": "Command"
},
{
"pattern": "^.+;$",
"title": "Molang"
}
]
},
"A": {
"type": "string",
"title": "Molang",
"description": "Molang definition.",
"format": "molang",
"examples": [
"query.variant",
"(1.0)",
"query.",
"variable.=;"
],
"defaultSnippets": [
{
"label": "New Molang",
"body": "$1"
}
]
},
"B": {
"title": "Format Version",
"description": "A version that tells minecraft what type of data format can be expected when reading this file.",
"pattern": "^([1-9]+)\\.([0-9]+)\\.([0-9]+)$",
"type": "string",
"default": "1.19.40",
"examples": [
"1.19.40",
"1.18.0",
"1.17.0",
"1.16.0",
"1.15.0",
"1.14.0",
"1.13.0",
"1.12.0",
"1.10.0",
"1.8.0"
],
"defaultSnippets": [
{
"label": "New Format version",
"body": "1.${1|8,10,12,17,18,19|}.${3|2|0|}"
}
]
}
},
"type": "object",
"title": "Animation Controller",
"description": "Animation controller for behaviors.",
"required": [
"format_version",
"animation_controllers"
],
"additionalProperties": false,
"properties": {
"format_version": {
"$ref": "#/definitions/B"
},
"animation_controllers": {
"type": "object",
"title": "Animation Controllers",
"description": "The animation controllers schema for.",
"propertyNames": {
"pattern": "^controller\\.animation\\.[a-z\\.]+",
"examples": [
"controller.animation.example",
"controller.animation.example.foo"
]
},
"additionalProperties": {
"additionalProperties": false,
"type": "object",
"title": "Animation Controller",
"description": "A single animation controller.",
"required": [
"states"
],
"minProperties": 1,
"properties": {
"states": {
"title": "States",
"description": "The states of this animation controller.",
"propertyNames": {
"pattern": "[a-z\\.]+"
},
"minProperties": 1,
"type": "object",
"additionalProperties": {
"additionalProperties": false,
"title": "Animation State",
"description": "Animation state.",
"type": "object",
"examples": [
{
"animations": [
"anim.idle"
],
"transitions": [
{
"example": "query.is_sheared"
}
]
}
],
"properties": {
"animations": {
"title": "Animations",
"description": "The animations definition for.",
"type": "array",
"items": {
"$ref": "#/definitions/animationspec",
"description": "The key definition of an animation to play, defined in the entity.",
"title": "Animations"
}
},
"on_entry": {
"type": "array",
"description": "Events, commands or transitions to preform on entry of this state.",
"title": "On Entry",
"items": {
"$ref": "#/definitions/commands"
}
},
"on_exit": {
"type": "array",
"description": "Events, commands or transitions to preform on exit of this state.",
"title": "On Exit",
"items": {
"$ref": "#/definitions/commands"
}
},
"transitions": {
"title": "Transition",
"description": "The transition definition for.",
"minProperties": 1,
"type": "array",
"items": {
"title": "Transition",
"description": "A transition to another state.",
"type": "object",
"maxProperties": 1,
"minProperties": 1,
"examples": [
{
"default": "query.is_chested"
}
],
"additionalProperties": {
"$ref": "#/definitions/A"
}
}
}
}
}
},
"initial_state": {
"title": "Initial State",
"description": "The state to start with, if not specified state at position 0 in the array is used.",
"type": "string",
"examples": [
"default"
]
}
}
}
}
}
}
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in typify-impl/src/convert.rs at the reported panic on line 551, then reproduce the failure with the animation controller schema in the issue. Focus on the transitions array schema, which contains object items with additionalProperties referencing definition A. Done means this schema converts successfully and the minecraft-bedrock-schemas build completes without the panic.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- compilers, tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100