update schema organization anf change some things.

This commit is contained in:
Ottermandias 2025-01-17 19:55:02 +01:00
parent 5f8377acaa
commit ec3ec7db4e
22 changed files with 796 additions and 676 deletions

View file

@ -0,0 +1,34 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"Files": {
"description": "File redirections in this container. Keys are game paths, values are relative file paths.",
"type": [ "object", "null" ],
"patternProperties": {
"^[^/\\\\.:?][^\\\\?:]+$": {
"type": "string",
"pattern": "^[^/\\\\.:?][^?:]+$"
}
},
"additionalProperties": false
},
"FileSwaps": {
"description": "File swaps in this container. Keys are original game paths, values are actual game paths.",
"type": [ "object", "null" ],
"patternProperties": {
"^[^/\\\\.?:][^\\\\?:]+$": {
"type": "string",
"pattern": "^[^/\\\\.:?][^?:]+$"
}
},
"additionalProperties": false
},
"Manipulations": {
"type": [ "array", "null" ],
"items": {
"$ref": "manipulation.json"
}
}
}
}

View file

@ -0,0 +1,31 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"Type": {
"const": "Combining"
},
"Options": {
"type": "array",
"items": {
"$ref": "option.json"
}
},
"Containers": {
"type": "array",
"items": {
"allOf": [
{
"$ref": "container.json"
},
{
"properties": {
"Name": {
"type": [ "string", "null" ]
}
}
}
]
}
}
}
}

View file

@ -0,0 +1,50 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"Type": {
"const": "Imc"
},
"AllVariants": {
"type": "boolean"
},
"OnlyAttributes": {
"type": "boolean"
},
"Identifier": {
"$ref": "meta_imc.json#ImcIdentifier"
},
"DefaultEntry": {
"$ref": "meta_imc.json#ImcEntry"
},
"Options": {
"type": "array",
"items": {
"$ref": "option.json",
"oneOf": [
{
"properties": {
"AttributeMask": {
"type": "integer",
"minimum": 0,
"maximum": 1023
}
},
"required": [
"AttributeMask"
]
},
{
"properties": {
"IsDisableSubMod": {
"const": true
}
},
"required": [
"IsDisableSubMod"
]
}
]
}
}
}
}

View file

@ -0,0 +1,32 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"Type": {
"const": "Multi"
},
"Options": {
"type": "array",
"items": {
"allOf": [
{
"$ref": "option.json"
},
{
"$ref": "container.json"
},
{
"properties": {
"Priority": {
"type": "integer"
}
}
}
]
}
}
}
}

View file

@ -0,0 +1,22 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"Type": {
"const": "Single"
},
"Options": {
"type": "array",
"items": {
"allOf": [
{
"$ref": "option.json"
},
{
"$ref": "container.json"
}
]
}
}
}
}

View file

@ -0,0 +1,95 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"Type": {
"enum": [ "Unknown", "Imc", "Eqdp", "Eqp", "Est", "Gmp", "Rsp", "GlobalEqp", "Atch" ]
},
"Manipulation": {
"type": "object"
}
},
"required": [ "Type", "Manipulation" ],
"oneOf": [
{
"properties": {
"Type": {
"const": "Imc"
},
"Manipulation": {
"$ref": "meta_imc.json"
}
}
},
{
"properties": {
"Type": {
"const": "Eqdp"
},
"Manipulation": {
"$ref": "meta_eqdp.json"
}
}
},
{
"properties": {
"Type": {
"const": "Eqp"
},
"Manipulation": {
"$ref": "meta_eqp.json"
}
}
},
{
"properties": {
"Type": {
"const": "Est"
},
"Manipulation": {
"$ref": "meta_est.json"
}
}
},
{
"properties": {
"Type": {
"const": "Gmp"
},
"Manipulation": {
"$ref": "meta_gmp.json"
}
}
},
{
"properties": {
"Type": {
"const": "Rsp"
},
"Manipulation": {
"$ref": "meta_rsp.json"
}
}
},
{
"properties": {
"Type": {
"const": "GlobalEqp"
},
"Manipulation": {
"$ref": "meta_geqp.json"
}
}
},
{
"properties": {
"Type": {
"const": "Atch"
},
"Manipulation": {
"$ref": "meta_atch.json"
}
}
}
]
}

View file

@ -0,0 +1,67 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"Entry": {
"type": "object",
"properties": {
"Bone": {
"type": "string",
"maxLength": 34
},
"Scale": {
"type": "number"
},
"OffsetX": {
"type": "number"
},
"OffsetY": {
"type": "number"
},
"OffsetZ": {
"type": "number"
},
"RotationX": {
"type": "number"
},
"RotationY": {
"type": "number"
},
"RotationZ": {
"type": "number"
}
},
"required": [
"Bone",
"Scale",
"OffsetX",
"OffsetY",
"OffsetZ",
"RotationX",
"RotationY",
"RotationZ"
]
},
"Gender": {
"$ref": "meta_enums.json#Gender"
},
"Race": {
"$ref": "meta_enums.json#ModelRace"
},
"Type": {
"type": "string",
"minLength": 1,
"maxLength": 4
},
"Index": {
"$ref": "meta_enums.json#U16"
}
},
"required": [
"Entry",
"Gender",
"Race",
"Type",
"Index"
]
}

View file

@ -0,0 +1,57 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$defs": {
"EquipSlot": {
"$anchor": "EquipSlot",
"enum": [ "Unknown", "MainHand", "OffHand", "Head", "Body", "Hands", "Belt", "Legs", "Feet", "Ears", "Neck", "Wrists", "RFinger", "BothHand", "LFinger", "HeadBody", "BodyHandsLegsFeet", "SoulCrystal", "LegsFeet", "FullBody", "BodyHands", "BodyLegsFeet", "ChestHands", "Nothing", "All" ]
},
"Gender": {
"$anchor": "Gender",
"enum": [ "Unknown", "Male", "Female", "MaleNpc", "FemaleNpc" ]
},
"ModelRace": {
"$anchor": "ModelRace",
"enum": [ "Unknown", "Midlander", "Highlander", "Elezen", "Lalafell", "Miqote", "Roegadyn", "AuRa", "Hrothgar", "Viera" ]
},
"ObjectType": {
"$anchor": "ObjectType",
"enum": [ "Unknown", "Vfx", "DemiHuman", "Accessory", "World", "Housing", "Monster", "Icon", "LoadingScreen", "Map", "Interface", "Equipment", "Character", "Weapon", "Font" ]
},
"BodySlot": {
"$anchor": "BodySlot",
"enum": [ "Unknown", "Hair", "Face", "Tail", "Body", "Zear" ]
},
"SubRace": {
"$anchor": "SubRace",
"enum": [ "Unknown", "Midlander", "Highlander", "Wildwood", "Duskwight", "Plainsfolk", "Dunesfolk", "SeekerOfTheSun", "KeeperOfTheMoon", "Seawolf", "Hellsguard", "Raen", "Xaela", "Helion", "Lost", "Rava", "Veena" ]
},
"U8": {
"$anchor": "U8",
"oneOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 255
},
{
"type": "string",
"pattern": "^0*(1[0-9][0-9]|[0-9]?[0-9]|2[0-4][0-9]|25[0-5])$"
}
]
},
"U16": {
"$anchor": "U16",
"oneOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 65535
},
{
"type": "string",
"pattern": "^0*([1-5][0-9]{4}|[0-9]{0,4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$"
}
]
}
}
}

View file

@ -0,0 +1,30 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"Entry": {
"type": "integer",
"minimum": 0,
"maximum": 1023
},
"Gender": {
"$ref": "meta_enums.json#Gender"
},
"Race": {
"$ref": "meta_enums.json#ModelRace"
},
"SetId": {
"$ref": "meta_enums.json#U16"
},
"Slot": {
"$ref": "meta_enums.json#EquipSlot"
}
},
"required": [
"Entry",
"Gender",
"Race",
"SetId",
"Slot"
]
}

View file

@ -0,0 +1,20 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"Entry": {
"type": "integer"
},
"SetId": {
"$ref": "meta_enums.json#U16"
},
"Slot": {
"$ref": "meta_enums.json#EquipSlot"
}
},
"required": [
"Entry",
"SetId",
"Slot"
]
}

View file

@ -0,0 +1,28 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"Entry": {
"$ref": "meta_enums.json#U16"
},
"Gender": {
"$ref": "meta_enums.json#Gender"
},
"Race": {
"$ref": "meta_enums.json#ModelRace"
},
"SetId": {
"$ref": "meta_enums.json#U16"
},
"Slot": {
"enum": [ "Hair", "Face", "Body", "Head" ]
}
},
"required": [
"Entry",
"Gender",
"Race",
"SetId",
"Slot"
]
}

View file

@ -0,0 +1,40 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"Condition": {
"$ref": "meta_enums.json#U16"
},
"Type": {
"enum": [ "DoNotHideEarrings", "DoNotHideNecklace", "DoNotHideBracelets", "DoNotHideRingR", "DoNotHideRingL", "DoNotHideHrothgarHats", "DoNotHideVieraHats" ]
}
},
"required": [ "Type" ],
"oneOf": [
{
"properties": {
"Type": {
"const": [ "DoNotHideHrothgarHats", "DoNotHideVieraHats" ]
},
"Condition": {
"const": 0
}
}
},
{
"properties": {
"Type": {
"const": [ "DoNotHideHrothgarHats", "DoNotHideVieraHats" ]
}
}
},
{
"properties": {
"Type": {
"const": [ "DoNotHideEarrings", "DoNotHideNecklace", "DoNotHideBracelets", "DoNotHideRingR", "DoNotHideRingL" ]
},
"Condition": {}
}
}
]
}

View file

@ -0,0 +1,59 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"Entry": {
"type": "object",
"properties": {
"Enabled": {
"type": "boolean"
},
"Animated": {
"type": "boolean"
},
"RotationA": {
"type": "integer",
"minimum": 0,
"maximum": 1023
},
"RotationB": {
"type": "integer",
"minimum": 0,
"maximum": 1023
},
"RotationC": {
"type": "integer",
"minimum": 0,
"maximum": 1023
},
"UnknownA": {
"type": "integer",
"minimum": 0,
"maximum": 15
},
"UnknownB": {
"type": "integer",
"minimum": 0,
"maximum": 15
}
},
"required": [
"Enabled",
"Animated",
"RotationA",
"RotationB",
"RotationC",
"UnknownA",
"UnknownB"
],
"additionalProperties": false
},
"SetId": {
"$ref": "meta_enums.json#U16"
}
},
"required": [
"Entry",
"SetId"
]
}

View file

@ -0,0 +1,87 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"Entry": {
"$ref": "#ImcEntry"
}
},
"required": [
"Entry"
],
"allOf": [
{
"$ref": "#ImcIdentifier"
}
],
"$defs": {
"ImcIdentifier": {
"type": "object",
"properties": {
"PrimaryId": {
"$ref": "meta_enums.json#U16"
},
"SecondaryId": {
"$ref": "meta_enums.json#U16"
},
"Variant": {
"$ref": "meta_enums.json#U8"
},
"ObjectType": {
"$ref": "meta_enums.json#ObjectType"
},
"EquipSlot": {
"$ref": "meta_enums.json#EquipSlot"
},
"BodySlot": {
"$ref": "meta_enums.json#BodySlot"
}
},
"$anchor": "ImcIdentifier",
"required": [
"PrimaryId",
"SecondaryId",
"Variant",
"ObjectType",
"EquipSlot",
"BodySlot"
]
},
"ImcEntry": {
"type": "object",
"properties": {
"MaterialId": {
"$ref": "meta_enums.json#U8"
},
"DecalId": {
"$ref": "meta_enums.json#U8"
},
"VfxId": {
"$ref": "meta_enums.json#U8"
},
"MaterialAnimationId": {
"$ref": "meta_enums.json#U8"
},
"AttributeMask": {
"type": "integer",
"minimum": 0,
"maximum": 1023
},
"SoundId": {
"type": "integer",
"minimum": 0,
"maximum": 63
}
},
"$anchor": "ImcEntry",
"required": [
"MaterialId",
"DecalId",
"VfxId",
"MaterialAnimationId",
"AttributeMask",
"SoundId"
]
}
}
}

View file

@ -0,0 +1,20 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"Entry": {
"type": "number"
},
"SubRace": {
"$ref": "meta_enums.json#SubRace"
},
"Attribute": {
"enum": [ "MaleMinSize", "MaleMaxSize", "MaleMinTail", "MaleMaxTail", "FemaleMinSize", "FemaleMaxSize", "FemaleMinTail", "FemaleMaxTail", "BustMinX", "BustMinY", "BustMinZ", "BustMaxX", "BustMaxY", "BustMaxZ" ]
}
},
"required": [
"Entry",
"SubRace",
"Attribute"
]
}

View file

@ -0,0 +1,24 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"Name": {
"description": "Name of the option.",
"type": "string",
"minLength": 1
},
"Description": {
"description": "Description of the option.",
"type": [ "string", "null" ]
},
"Priority": {
"description": "Priority of the option. If several enabled options within the group define conflicting files or manipulations, the highest priority wins.",
"type": "integer"
},
"Image": {
"description": "Unused by Penumbra.",
"type": [ "string", "null" ]
}
},
"required": [ "Name" ]
}