{ "$defs": { "BooleanEffectPattern": { "properties": { "name": { "title": "Name", "type": "string" }, "set": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Set" }, "toggle": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Toggle" } }, "required": [ "name" ], "title": "BooleanEffectPattern", "type": "object" }, "BooleanEffectResult": { "properties": { "name": { "title": "Name", "type": "string" }, "set": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Set" }, "toggle": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Toggle" } }, "required": [ "name" ], "title": "BooleanEffectResult", "type": "object" }, "EffectPattern": { "properties": { "name": { "title": "Name", "type": "string" }, "description": { "title": "Description", "type": "string" }, "application": { "enum": [ "permanent", "temporary" ], "title": "Application", "type": "string" }, "attributes": { "items": { "anyOf": [ { "$ref": "#/$defs/StringEffectPattern" }, { "$ref": "#/$defs/FloatEffectPattern" }, { "$ref": "#/$defs/IntEffectPattern" }, { "$ref": "#/$defs/BooleanEffectPattern" } ] }, "title": "Attributes", "type": "array" }, "cooldown": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Cooldown" }, "duration": { "anyOf": [ { "type": "integer" }, { "$ref": "#/$defs/IntRange" }, { "type": "null" } ], "default": null, "title": "Duration" }, "last_used": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Last Used" }, "uses": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Uses" }, "id": { "title": "Id", "type": "string" }, "type": { "const": "effect_pattern", "default": "effect_pattern", "enum": [ "effect_pattern" ], "title": "Type", "type": "string" } }, "required": [ "name", "description", "application" ], "title": "EffectPattern", "type": "object" }, "EffectResult": { "properties": { "name": { "title": "Name", "type": "string" }, "description": { "title": "Description", "type": "string" }, "attributes": { "items": { "anyOf": [ { "$ref": "#/$defs/BooleanEffectResult" }, { "$ref": "#/$defs/FloatEffectResult" }, { "$ref": "#/$defs/IntEffectResult" }, { "$ref": "#/$defs/StringEffectResult" } ] }, "title": "Attributes", "type": "array" }, "duration": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Duration" }, "id": { "title": "Id", "type": "string" }, "type": { "const": "effect_result", "default": "effect_result", "enum": [ "effect_result" ], "title": "Type", "type": "string" } }, "required": [ "name", "description" ], "title": "EffectResult", "type": "object" }, "FloatEffectPattern": { "properties": { "name": { "title": "Name", "type": "string" }, "set": { "anyOf": [ { "type": "number" }, { "$ref": "#/$defs/FloatRange" }, { "type": "null" } ], "default": null, "title": "Set" }, "offset": { "anyOf": [ { "type": "number" }, { "$ref": "#/$defs/FloatRange" }, { "type": "null" } ], "default": null, "title": "Offset" }, "multiply": { "anyOf": [ { "type": "number" }, { "$ref": "#/$defs/FloatRange" }, { "type": "null" } ], "default": null, "title": "Multiply" } }, "required": [ "name" ], "title": "FloatEffectPattern", "type": "object" }, "FloatEffectResult": { "properties": { "name": { "title": "Name", "type": "string" }, "set": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Set" }, "offset": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Offset" }, "multiply": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Multiply" } }, "required": [ "name" ], "title": "FloatEffectResult", "type": "object" }, "FloatRange": { "properties": { "min": { "title": "Min", "type": "number" }, "max": { "title": "Max", "type": "number" }, "interval": { "default": 1.0, "title": "Interval", "type": "number" } }, "required": [ "min", "max" ], "title": "FloatRange", "type": "object" }, "IntEffectPattern": { "properties": { "name": { "title": "Name", "type": "string" }, "set": { "anyOf": [ { "type": "integer" }, { "$ref": "#/$defs/IntRange" }, { "type": "null" } ], "default": null, "title": "Set" }, "offset": { "anyOf": [ { "type": "integer" }, { "$ref": "#/$defs/IntRange" }, { "type": "null" } ], "default": null, "title": "Offset" }, "multiply": { "anyOf": [ { "type": "number" }, { "$ref": "#/$defs/FloatRange" }, { "type": "null" } ], "default": null, "title": "Multiply" } }, "required": [ "name" ], "title": "IntEffectPattern", "type": "object" }, "IntEffectResult": { "properties": { "name": { "title": "Name", "type": "string" }, "set": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Set" }, "offset": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Offset" }, "multiply": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Multiply" } }, "required": [ "name" ], "title": "IntEffectResult", "type": "object" }, "IntRange": { "properties": { "min": { "title": "Min", "type": "integer" }, "max": { "title": "Max", "type": "integer" }, "interval": { "default": 1, "title": "Interval", "type": "integer" } }, "required": [ "min", "max" ], "title": "IntRange", "type": "object" }, "Item": { "properties": { "name": { "title": "Name", "type": "string" }, "description": { "title": "Description", "type": "string" }, "active_effects": { "items": { "$ref": "#/$defs/EffectResult" }, "title": "Active Effects", "type": "array" }, "attributes": { "additionalProperties": { "anyOf": [ { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "string" } ] }, "title": "Attributes", "type": "object" }, "effects": { "items": { "$ref": "#/$defs/EffectPattern" }, "title": "Effects", "type": "array" }, "items": { "items": { "$ref": "#/$defs/Item" }, "title": "Items", "type": "array" }, "id": { "title": "Id", "type": "string" }, "type": { "const": "item", "default": "item", "enum": [ "item" ], "title": "Type", "type": "string" } }, "required": [ "name", "description" ], "title": "Item", "type": "object" }, "StringEffectPattern": { "properties": { "name": { "title": "Name", "type": "string" }, "append": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Append" }, "prepend": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Prepend" }, "set": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Set" } }, "required": [ "name" ], "title": "StringEffectPattern", "type": "object" }, "StringEffectResult": { "properties": { "name": { "title": "Name", "type": "string" }, "append": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Append" }, "prepend": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Prepend" }, "set": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Set" } }, "required": [ "name" ], "title": "StringEffectResult", "type": "object" } }, "allOf": [ { "$ref": "#/$defs/Item" } ] }