diff --git a/README.md b/README.md index 8695b81..1acf010 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,7 @@ The schema includes the following: - Comment support on any schema object - Maps out-of-the-box to a very simple object mapping - JSON schema for the schema itself, providing IDE completion and error-checking +- Relations to group similarly sized arrays together This repository hosts the schema files for each game version. Each change produces a new release of every known game version's schema and removes the old release. Due to the structure of this repository, any change to a given game version is meant to supercede all others. diff --git a/Schemas/2023.07.26.0000.0000/CraftAction.yml b/Schemas/2023.07.26.0000.0000/CraftAction.yml index 4b0210e..19a8894 100644 --- a/Schemas/2023.07.26.0000.0000/CraftAction.yml +++ b/Schemas/2023.07.26.0000.0000/CraftAction.yml @@ -38,7 +38,8 @@ fields: targets: [ActionTimeline] - name: Icon type: icon - - name: Unknown0 + - name: RequiredStatus + targets: [Status] - name: ClassJobCategory type: link targets: [ClassJobCategory] diff --git a/Schemas/2023.07.26.0000.0000/ItemFood.yml b/Schemas/2023.07.26.0000.0000/ItemFood.yml index c1cf583..448b92d 100644 --- a/Schemas/2023.07.26.0000.0000/ItemFood.yml +++ b/Schemas/2023.07.26.0000.0000/ItemFood.yml @@ -22,3 +22,11 @@ fields: - name: IsRelative type: array count: 3 +relations: + Params: + - BaseParam + - IsRelative + - Value + - Max + - ValueHQ + - MaxHQ \ No newline at end of file diff --git a/Schemas/2023.07.26.0000.0000/ItemStainCondition.yml b/Schemas/2023.07.26.0000.0000/ItemStainCondition.yml index df679af..23c2381 100644 --- a/Schemas/2023.07.26.0000.0000/ItemStainCondition.yml +++ b/Schemas/2023.07.26.0000.0000/ItemStainCondition.yml @@ -1,3 +1,5 @@ name: ItemStainCondition fields: - - name: Unknown0 + - name: UnlockQuest + type: link + targets: [Quest] diff --git a/Schemas/2023.07.26.0000.0000/SpecialShop.yml b/Schemas/2023.07.26.0000.0000/SpecialShop.yml index 9e2e5d9..9474cf1 100644 --- a/Schemas/2023.07.26.0000.0000/SpecialShop.yml +++ b/Schemas/2023.07.26.0000.0000/SpecialShop.yml @@ -26,6 +26,9 @@ fields: - name: ItemCost type: array count: 3 + fields: + - type: link + targets: [Item] - name: Quest type: link targets: [Quest] @@ -46,6 +49,16 @@ fields: - name: ReceiveHq type: array count: 2 + relations: + ReceiveItems: + - Item + - ReceiveCount + - ReceiveHq + ItemCosts: + - ItemCost + - CurrencyCost + - HqCost + - CollectabilityCost - name: Quest type: link targets: [Quest] diff --git a/Schemas/2023.09.28.0000.0000/Aetheryte.yml b/Schemas/2023.09.28.0000.0000/Aetheryte.yml index 89163ac..501e29d 100644 --- a/Schemas/2023.09.28.0000.0000/Aetheryte.yml +++ b/Schemas/2023.09.28.0000.0000/Aetheryte.yml @@ -33,8 +33,8 @@ fields: targets: [Map] - name: AetherstreamX - name: AetherstreamY + - name: Unknown2 - name: AethernetGroup - name: Order - - name: Unknown2 - name: IsAetheryte - name: Invisible diff --git a/Schemas/2023.09.28.0000.0000/CraftAction.yml b/Schemas/2023.09.28.0000.0000/CraftAction.yml index 4b0210e..19a8894 100644 --- a/Schemas/2023.09.28.0000.0000/CraftAction.yml +++ b/Schemas/2023.09.28.0000.0000/CraftAction.yml @@ -38,7 +38,8 @@ fields: targets: [ActionTimeline] - name: Icon type: icon - - name: Unknown0 + - name: RequiredStatus + targets: [Status] - name: ClassJobCategory type: link targets: [ClassJobCategory] diff --git a/Schemas/2023.09.28.0000.0000/ItemFood.yml b/Schemas/2023.09.28.0000.0000/ItemFood.yml index c1cf583..448b92d 100644 --- a/Schemas/2023.09.28.0000.0000/ItemFood.yml +++ b/Schemas/2023.09.28.0000.0000/ItemFood.yml @@ -22,3 +22,11 @@ fields: - name: IsRelative type: array count: 3 +relations: + Params: + - BaseParam + - IsRelative + - Value + - Max + - ValueHQ + - MaxHQ \ No newline at end of file diff --git a/Schemas/2023.09.28.0000.0000/ItemStainCondition.yml b/Schemas/2023.09.28.0000.0000/ItemStainCondition.yml index df679af..23c2381 100644 --- a/Schemas/2023.09.28.0000.0000/ItemStainCondition.yml +++ b/Schemas/2023.09.28.0000.0000/ItemStainCondition.yml @@ -1,3 +1,5 @@ name: ItemStainCondition fields: - - name: Unknown0 + - name: UnlockQuest + type: link + targets: [Quest] diff --git a/Schemas/2023.09.28.0000.0000/SpecialShop.yml b/Schemas/2023.09.28.0000.0000/SpecialShop.yml index ea2cc80..01ada37 100644 --- a/Schemas/2023.09.28.0000.0000/SpecialShop.yml +++ b/Schemas/2023.09.28.0000.0000/SpecialShop.yml @@ -26,6 +26,9 @@ fields: - name: ItemCost type: array count: 3 + fields: + - type: link + targets: [Item] - name: Quest type: link targets: [Quest] @@ -49,6 +52,16 @@ fields: - name: ReceiveHq type: array count: 2 + relations: + ReceiveItems: + - Item + - ReceiveCount + - ReceiveHq + ItemCosts: + - ItemCost + - CurrencyCost + - HqCost + - CollectabilityCost - name: Quest type: link targets: [Quest] diff --git a/Schemas/2023.10.23.0000.0000/Aetheryte.yml b/Schemas/2023.10.23.0000.0000/Aetheryte.yml index 89163ac..501e29d 100644 --- a/Schemas/2023.10.23.0000.0000/Aetheryte.yml +++ b/Schemas/2023.10.23.0000.0000/Aetheryte.yml @@ -33,8 +33,8 @@ fields: targets: [Map] - name: AetherstreamX - name: AetherstreamY + - name: Unknown2 - name: AethernetGroup - name: Order - - name: Unknown2 - name: IsAetheryte - name: Invisible diff --git a/Schemas/2023.10.23.0000.0000/CraftAction.yml b/Schemas/2023.10.23.0000.0000/CraftAction.yml index 4b0210e..19a8894 100644 --- a/Schemas/2023.10.23.0000.0000/CraftAction.yml +++ b/Schemas/2023.10.23.0000.0000/CraftAction.yml @@ -38,7 +38,8 @@ fields: targets: [ActionTimeline] - name: Icon type: icon - - name: Unknown0 + - name: RequiredStatus + targets: [Status] - name: ClassJobCategory type: link targets: [ClassJobCategory] diff --git a/Schemas/2023.10.23.0000.0000/ItemFood.yml b/Schemas/2023.10.23.0000.0000/ItemFood.yml index c1cf583..448b92d 100644 --- a/Schemas/2023.10.23.0000.0000/ItemFood.yml +++ b/Schemas/2023.10.23.0000.0000/ItemFood.yml @@ -22,3 +22,11 @@ fields: - name: IsRelative type: array count: 3 +relations: + Params: + - BaseParam + - IsRelative + - Value + - Max + - ValueHQ + - MaxHQ \ No newline at end of file diff --git a/Schemas/2023.10.23.0000.0000/ItemStainCondition.yml b/Schemas/2023.10.23.0000.0000/ItemStainCondition.yml index df679af..23c2381 100644 --- a/Schemas/2023.10.23.0000.0000/ItemStainCondition.yml +++ b/Schemas/2023.10.23.0000.0000/ItemStainCondition.yml @@ -1,3 +1,5 @@ name: ItemStainCondition fields: - - name: Unknown0 + - name: UnlockQuest + type: link + targets: [Quest] diff --git a/Schemas/2023.10.23.0000.0000/SpecialShop.yml b/Schemas/2023.10.23.0000.0000/SpecialShop.yml index ea2cc80..01ada37 100644 --- a/Schemas/2023.10.23.0000.0000/SpecialShop.yml +++ b/Schemas/2023.10.23.0000.0000/SpecialShop.yml @@ -26,6 +26,9 @@ fields: - name: ItemCost type: array count: 3 + fields: + - type: link + targets: [Item] - name: Quest type: link targets: [Quest] @@ -49,6 +52,16 @@ fields: - name: ReceiveHq type: array count: 2 + relations: + ReceiveItems: + - Item + - ReceiveCount + - ReceiveHq + ItemCosts: + - ItemCost + - CurrencyCost + - HqCost + - CollectabilityCost - name: Quest type: link targets: [Quest] diff --git a/Schemas/2023.11.09.0000.0000/Aetheryte.yml b/Schemas/2023.11.09.0000.0000/Aetheryte.yml index 89163ac..501e29d 100644 --- a/Schemas/2023.11.09.0000.0000/Aetheryte.yml +++ b/Schemas/2023.11.09.0000.0000/Aetheryte.yml @@ -33,8 +33,8 @@ fields: targets: [Map] - name: AetherstreamX - name: AetherstreamY + - name: Unknown2 - name: AethernetGroup - name: Order - - name: Unknown2 - name: IsAetheryte - name: Invisible diff --git a/Schemas/2023.11.09.0000.0000/CraftAction.yml b/Schemas/2023.11.09.0000.0000/CraftAction.yml index 4b0210e..19a8894 100644 --- a/Schemas/2023.11.09.0000.0000/CraftAction.yml +++ b/Schemas/2023.11.09.0000.0000/CraftAction.yml @@ -38,7 +38,8 @@ fields: targets: [ActionTimeline] - name: Icon type: icon - - name: Unknown0 + - name: RequiredStatus + targets: [Status] - name: ClassJobCategory type: link targets: [ClassJobCategory] diff --git a/Schemas/2023.11.09.0000.0000/ItemFood.yml b/Schemas/2023.11.09.0000.0000/ItemFood.yml index c1cf583..448b92d 100644 --- a/Schemas/2023.11.09.0000.0000/ItemFood.yml +++ b/Schemas/2023.11.09.0000.0000/ItemFood.yml @@ -22,3 +22,11 @@ fields: - name: IsRelative type: array count: 3 +relations: + Params: + - BaseParam + - IsRelative + - Value + - Max + - ValueHQ + - MaxHQ \ No newline at end of file diff --git a/Schemas/2023.11.09.0000.0000/ItemStainCondition.yml b/Schemas/2023.11.09.0000.0000/ItemStainCondition.yml index df679af..23c2381 100644 --- a/Schemas/2023.11.09.0000.0000/ItemStainCondition.yml +++ b/Schemas/2023.11.09.0000.0000/ItemStainCondition.yml @@ -1,3 +1,5 @@ name: ItemStainCondition fields: - - name: Unknown0 + - name: UnlockQuest + type: link + targets: [Quest] diff --git a/Schemas/2023.11.09.0000.0000/SpecialShop.yml b/Schemas/2023.11.09.0000.0000/SpecialShop.yml index ea2cc80..01ada37 100644 --- a/Schemas/2023.11.09.0000.0000/SpecialShop.yml +++ b/Schemas/2023.11.09.0000.0000/SpecialShop.yml @@ -26,6 +26,9 @@ fields: - name: ItemCost type: array count: 3 + fields: + - type: link + targets: [Item] - name: Quest type: link targets: [Quest] @@ -49,6 +52,16 @@ fields: - name: ReceiveHq type: array count: 2 + relations: + ReceiveItems: + - Item + - ReceiveCount + - ReceiveHq + ItemCosts: + - ItemCost + - CurrencyCost + - HqCost + - CollectabilityCost - name: Quest type: link targets: [Quest] diff --git a/Schemas/2024.01.06.0000.0000/Aetheryte.yml b/Schemas/2024.01.06.0000.0000/Aetheryte.yml index 89163ac..501e29d 100644 --- a/Schemas/2024.01.06.0000.0000/Aetheryte.yml +++ b/Schemas/2024.01.06.0000.0000/Aetheryte.yml @@ -33,8 +33,8 @@ fields: targets: [Map] - name: AetherstreamX - name: AetherstreamY + - name: Unknown2 - name: AethernetGroup - name: Order - - name: Unknown2 - name: IsAetheryte - name: Invisible diff --git a/Schemas/2024.01.06.0000.0000/CraftAction.yml b/Schemas/2024.01.06.0000.0000/CraftAction.yml index 4b0210e..19a8894 100644 --- a/Schemas/2024.01.06.0000.0000/CraftAction.yml +++ b/Schemas/2024.01.06.0000.0000/CraftAction.yml @@ -38,7 +38,8 @@ fields: targets: [ActionTimeline] - name: Icon type: icon - - name: Unknown0 + - name: RequiredStatus + targets: [Status] - name: ClassJobCategory type: link targets: [ClassJobCategory] diff --git a/Schemas/2024.01.06.0000.0000/ItemFood.yml b/Schemas/2024.01.06.0000.0000/ItemFood.yml index c1cf583..448b92d 100644 --- a/Schemas/2024.01.06.0000.0000/ItemFood.yml +++ b/Schemas/2024.01.06.0000.0000/ItemFood.yml @@ -22,3 +22,11 @@ fields: - name: IsRelative type: array count: 3 +relations: + Params: + - BaseParam + - IsRelative + - Value + - Max + - ValueHQ + - MaxHQ \ No newline at end of file diff --git a/Schemas/2024.01.06.0000.0000/ItemStainCondition.yml b/Schemas/2024.01.06.0000.0000/ItemStainCondition.yml index df679af..23c2381 100644 --- a/Schemas/2024.01.06.0000.0000/ItemStainCondition.yml +++ b/Schemas/2024.01.06.0000.0000/ItemStainCondition.yml @@ -1,3 +1,5 @@ name: ItemStainCondition fields: - - name: Unknown0 + - name: UnlockQuest + type: link + targets: [Quest] diff --git a/Schemas/2024.01.06.0000.0000/SpecialShop.yml b/Schemas/2024.01.06.0000.0000/SpecialShop.yml index ea2cc80..01ada37 100644 --- a/Schemas/2024.01.06.0000.0000/SpecialShop.yml +++ b/Schemas/2024.01.06.0000.0000/SpecialShop.yml @@ -26,6 +26,9 @@ fields: - name: ItemCost type: array count: 3 + fields: + - type: link + targets: [Item] - name: Quest type: link targets: [Quest] @@ -49,6 +52,16 @@ fields: - name: ReceiveHq type: array count: 2 + relations: + ReceiveItems: + - Item + - ReceiveCount + - ReceiveHq + ItemCosts: + - ItemCost + - CurrencyCost + - HqCost + - CollectabilityCost - name: Quest type: link targets: [Quest] diff --git a/Schemas/2024.02.05.0000.0000/Aetheryte.yml b/Schemas/2024.02.05.0000.0000/Aetheryte.yml index 89163ac..501e29d 100644 --- a/Schemas/2024.02.05.0000.0000/Aetheryte.yml +++ b/Schemas/2024.02.05.0000.0000/Aetheryte.yml @@ -33,8 +33,8 @@ fields: targets: [Map] - name: AetherstreamX - name: AetherstreamY + - name: Unknown2 - name: AethernetGroup - name: Order - - name: Unknown2 - name: IsAetheryte - name: Invisible diff --git a/Schemas/2024.02.05.0000.0000/CraftAction.yml b/Schemas/2024.02.05.0000.0000/CraftAction.yml index 4b0210e..19a8894 100644 --- a/Schemas/2024.02.05.0000.0000/CraftAction.yml +++ b/Schemas/2024.02.05.0000.0000/CraftAction.yml @@ -38,7 +38,8 @@ fields: targets: [ActionTimeline] - name: Icon type: icon - - name: Unknown0 + - name: RequiredStatus + targets: [Status] - name: ClassJobCategory type: link targets: [ClassJobCategory] diff --git a/Schemas/2024.02.05.0000.0000/ItemFood.yml b/Schemas/2024.02.05.0000.0000/ItemFood.yml index c1cf583..448b92d 100644 --- a/Schemas/2024.02.05.0000.0000/ItemFood.yml +++ b/Schemas/2024.02.05.0000.0000/ItemFood.yml @@ -22,3 +22,11 @@ fields: - name: IsRelative type: array count: 3 +relations: + Params: + - BaseParam + - IsRelative + - Value + - Max + - ValueHQ + - MaxHQ \ No newline at end of file diff --git a/Schemas/2024.02.05.0000.0000/ItemStainCondition.yml b/Schemas/2024.02.05.0000.0000/ItemStainCondition.yml index df679af..23c2381 100644 --- a/Schemas/2024.02.05.0000.0000/ItemStainCondition.yml +++ b/Schemas/2024.02.05.0000.0000/ItemStainCondition.yml @@ -1,3 +1,5 @@ name: ItemStainCondition fields: - - name: Unknown0 + - name: UnlockQuest + type: link + targets: [Quest] diff --git a/Schemas/2024.02.05.0000.0000/SharlayanCraftWorksSupply.yml b/Schemas/2024.02.05.0000.0000/SharlayanCraftWorksSupply.yml index bb3b185..6b3549a 100644 --- a/Schemas/2024.02.05.0000.0000/SharlayanCraftWorksSupply.yml +++ b/Schemas/2024.02.05.0000.0000/SharlayanCraftWorksSupply.yml @@ -4,7 +4,9 @@ fields: type: array count: 4 fields: - - name: Id + - name: ItemId + type: link + targets: [Item] - name: XPReward - name: CollectabilityMid - name: CollectabilityHigh diff --git a/Schemas/2024.02.05.0000.0000/SpecialShop.yml b/Schemas/2024.02.05.0000.0000/SpecialShop.yml index ea2cc80..01ada37 100644 --- a/Schemas/2024.02.05.0000.0000/SpecialShop.yml +++ b/Schemas/2024.02.05.0000.0000/SpecialShop.yml @@ -26,6 +26,9 @@ fields: - name: ItemCost type: array count: 3 + fields: + - type: link + targets: [Item] - name: Quest type: link targets: [Quest] @@ -49,6 +52,16 @@ fields: - name: ReceiveHq type: array count: 2 + relations: + ReceiveItems: + - Item + - ReceiveCount + - ReceiveHq + ItemCosts: + - ItemCost + - CurrencyCost + - HqCost + - CollectabilityCost - name: Quest type: link targets: [Quest] diff --git a/Schemas/2024.03.08.0000.0000/Aetheryte.yml b/Schemas/2024.03.08.0000.0000/Aetheryte.yml index 89163ac..501e29d 100644 --- a/Schemas/2024.03.08.0000.0000/Aetheryte.yml +++ b/Schemas/2024.03.08.0000.0000/Aetheryte.yml @@ -33,8 +33,8 @@ fields: targets: [Map] - name: AetherstreamX - name: AetherstreamY + - name: Unknown2 - name: AethernetGroup - name: Order - - name: Unknown2 - name: IsAetheryte - name: Invisible diff --git a/Schemas/2024.03.08.0000.0000/CraftAction.yml b/Schemas/2024.03.08.0000.0000/CraftAction.yml index 4b0210e..19a8894 100644 --- a/Schemas/2024.03.08.0000.0000/CraftAction.yml +++ b/Schemas/2024.03.08.0000.0000/CraftAction.yml @@ -38,7 +38,8 @@ fields: targets: [ActionTimeline] - name: Icon type: icon - - name: Unknown0 + - name: RequiredStatus + targets: [Status] - name: ClassJobCategory type: link targets: [ClassJobCategory] diff --git a/Schemas/2024.03.08.0000.0000/ItemFood.yml b/Schemas/2024.03.08.0000.0000/ItemFood.yml index c1cf583..448b92d 100644 --- a/Schemas/2024.03.08.0000.0000/ItemFood.yml +++ b/Schemas/2024.03.08.0000.0000/ItemFood.yml @@ -22,3 +22,11 @@ fields: - name: IsRelative type: array count: 3 +relations: + Params: + - BaseParam + - IsRelative + - Value + - Max + - ValueHQ + - MaxHQ \ No newline at end of file diff --git a/Schemas/2024.03.08.0000.0000/ItemStainCondition.yml b/Schemas/2024.03.08.0000.0000/ItemStainCondition.yml index df679af..23c2381 100644 --- a/Schemas/2024.03.08.0000.0000/ItemStainCondition.yml +++ b/Schemas/2024.03.08.0000.0000/ItemStainCondition.yml @@ -1,3 +1,5 @@ name: ItemStainCondition fields: - - name: Unknown0 + - name: UnlockQuest + type: link + targets: [Quest] diff --git a/Schemas/2024.03.08.0000.0000/SharlayanCraftWorksSupply.yml b/Schemas/2024.03.08.0000.0000/SharlayanCraftWorksSupply.yml index bb3b185..6b3549a 100644 --- a/Schemas/2024.03.08.0000.0000/SharlayanCraftWorksSupply.yml +++ b/Schemas/2024.03.08.0000.0000/SharlayanCraftWorksSupply.yml @@ -4,7 +4,9 @@ fields: type: array count: 4 fields: - - name: Id + - name: ItemId + type: link + targets: [Item] - name: XPReward - name: CollectabilityMid - name: CollectabilityHigh diff --git a/Schemas/2024.03.08.0000.0000/SpecialShop.yml b/Schemas/2024.03.08.0000.0000/SpecialShop.yml index ea2cc80..01ada37 100644 --- a/Schemas/2024.03.08.0000.0000/SpecialShop.yml +++ b/Schemas/2024.03.08.0000.0000/SpecialShop.yml @@ -26,6 +26,9 @@ fields: - name: ItemCost type: array count: 3 + fields: + - type: link + targets: [Item] - name: Quest type: link targets: [Quest] @@ -49,6 +52,16 @@ fields: - name: ReceiveHq type: array count: 2 + relations: + ReceiveItems: + - Item + - ReceiveCount + - ReceiveHq + ItemCosts: + - ItemCost + - CurrencyCost + - HqCost + - CollectabilityCost - name: Quest type: link targets: [Quest] diff --git a/Schemas/2024.03.27.0000.0000/Aetheryte.yml b/Schemas/2024.03.27.0000.0000/Aetheryte.yml index 89163ac..501e29d 100644 --- a/Schemas/2024.03.27.0000.0000/Aetheryte.yml +++ b/Schemas/2024.03.27.0000.0000/Aetheryte.yml @@ -33,8 +33,8 @@ fields: targets: [Map] - name: AetherstreamX - name: AetherstreamY + - name: Unknown2 - name: AethernetGroup - name: Order - - name: Unknown2 - name: IsAetheryte - name: Invisible diff --git a/Schemas/2024.03.27.0000.0000/CraftAction.yml b/Schemas/2024.03.27.0000.0000/CraftAction.yml index 4b0210e..19a8894 100644 --- a/Schemas/2024.03.27.0000.0000/CraftAction.yml +++ b/Schemas/2024.03.27.0000.0000/CraftAction.yml @@ -38,7 +38,8 @@ fields: targets: [ActionTimeline] - name: Icon type: icon - - name: Unknown0 + - name: RequiredStatus + targets: [Status] - name: ClassJobCategory type: link targets: [ClassJobCategory] diff --git a/Schemas/2024.03.27.0000.0000/ItemFood.yml b/Schemas/2024.03.27.0000.0000/ItemFood.yml index c1cf583..448b92d 100644 --- a/Schemas/2024.03.27.0000.0000/ItemFood.yml +++ b/Schemas/2024.03.27.0000.0000/ItemFood.yml @@ -22,3 +22,11 @@ fields: - name: IsRelative type: array count: 3 +relations: + Params: + - BaseParam + - IsRelative + - Value + - Max + - ValueHQ + - MaxHQ \ No newline at end of file diff --git a/Schemas/2024.03.27.0000.0000/ItemStainCondition.yml b/Schemas/2024.03.27.0000.0000/ItemStainCondition.yml index df679af..23c2381 100644 --- a/Schemas/2024.03.27.0000.0000/ItemStainCondition.yml +++ b/Schemas/2024.03.27.0000.0000/ItemStainCondition.yml @@ -1,3 +1,5 @@ name: ItemStainCondition fields: - - name: Unknown0 + - name: UnlockQuest + type: link + targets: [Quest] diff --git a/Schemas/2024.03.27.0000.0000/SharlayanCraftWorksSupply.yml b/Schemas/2024.03.27.0000.0000/SharlayanCraftWorksSupply.yml index bb3b185..6b3549a 100644 --- a/Schemas/2024.03.27.0000.0000/SharlayanCraftWorksSupply.yml +++ b/Schemas/2024.03.27.0000.0000/SharlayanCraftWorksSupply.yml @@ -4,7 +4,9 @@ fields: type: array count: 4 fields: - - name: Id + - name: ItemId + type: link + targets: [Item] - name: XPReward - name: CollectabilityMid - name: CollectabilityHigh diff --git a/Schemas/2024.03.27.0000.0000/SpecialShop.yml b/Schemas/2024.03.27.0000.0000/SpecialShop.yml index ea2cc80..01ada37 100644 --- a/Schemas/2024.03.27.0000.0000/SpecialShop.yml +++ b/Schemas/2024.03.27.0000.0000/SpecialShop.yml @@ -26,6 +26,9 @@ fields: - name: ItemCost type: array count: 3 + fields: + - type: link + targets: [Item] - name: Quest type: link targets: [Quest] @@ -49,6 +52,16 @@ fields: - name: ReceiveHq type: array count: 2 + relations: + ReceiveItems: + - Item + - ReceiveCount + - ReceiveHq + ItemCosts: + - ItemCost + - CurrencyCost + - HqCost + - CollectabilityCost - name: Quest type: link targets: [Quest] diff --git a/Schemas/2024.04.23.0000.0000/Aetheryte.yml b/Schemas/2024.04.23.0000.0000/Aetheryte.yml index 89163ac..501e29d 100644 --- a/Schemas/2024.04.23.0000.0000/Aetheryte.yml +++ b/Schemas/2024.04.23.0000.0000/Aetheryte.yml @@ -33,8 +33,8 @@ fields: targets: [Map] - name: AetherstreamX - name: AetherstreamY + - name: Unknown2 - name: AethernetGroup - name: Order - - name: Unknown2 - name: IsAetheryte - name: Invisible diff --git a/Schemas/2024.04.23.0000.0000/CraftAction.yml b/Schemas/2024.04.23.0000.0000/CraftAction.yml index 4b0210e..19a8894 100644 --- a/Schemas/2024.04.23.0000.0000/CraftAction.yml +++ b/Schemas/2024.04.23.0000.0000/CraftAction.yml @@ -38,7 +38,8 @@ fields: targets: [ActionTimeline] - name: Icon type: icon - - name: Unknown0 + - name: RequiredStatus + targets: [Status] - name: ClassJobCategory type: link targets: [ClassJobCategory] diff --git a/Schemas/2024.04.23.0000.0000/ItemFood.yml b/Schemas/2024.04.23.0000.0000/ItemFood.yml index c1cf583..448b92d 100644 --- a/Schemas/2024.04.23.0000.0000/ItemFood.yml +++ b/Schemas/2024.04.23.0000.0000/ItemFood.yml @@ -22,3 +22,11 @@ fields: - name: IsRelative type: array count: 3 +relations: + Params: + - BaseParam + - IsRelative + - Value + - Max + - ValueHQ + - MaxHQ \ No newline at end of file diff --git a/Schemas/2024.04.23.0000.0000/ItemStainCondition.yml b/Schemas/2024.04.23.0000.0000/ItemStainCondition.yml index df679af..23c2381 100644 --- a/Schemas/2024.04.23.0000.0000/ItemStainCondition.yml +++ b/Schemas/2024.04.23.0000.0000/ItemStainCondition.yml @@ -1,3 +1,5 @@ name: ItemStainCondition fields: - - name: Unknown0 + - name: UnlockQuest + type: link + targets: [Quest] diff --git a/Schemas/2024.04.23.0000.0000/SharlayanCraftWorksSupply.yml b/Schemas/2024.04.23.0000.0000/SharlayanCraftWorksSupply.yml index bb3b185..6b3549a 100644 --- a/Schemas/2024.04.23.0000.0000/SharlayanCraftWorksSupply.yml +++ b/Schemas/2024.04.23.0000.0000/SharlayanCraftWorksSupply.yml @@ -4,7 +4,9 @@ fields: type: array count: 4 fields: - - name: Id + - name: ItemId + type: link + targets: [Item] - name: XPReward - name: CollectabilityMid - name: CollectabilityHigh diff --git a/Schemas/2024.04.23.0000.0000/SpecialShop.yml b/Schemas/2024.04.23.0000.0000/SpecialShop.yml index ea2cc80..01ada37 100644 --- a/Schemas/2024.04.23.0000.0000/SpecialShop.yml +++ b/Schemas/2024.04.23.0000.0000/SpecialShop.yml @@ -26,6 +26,9 @@ fields: - name: ItemCost type: array count: 3 + fields: + - type: link + targets: [Item] - name: Quest type: link targets: [Quest] @@ -49,6 +52,16 @@ fields: - name: ReceiveHq type: array count: 2 + relations: + ReceiveItems: + - Item + - ReceiveCount + - ReceiveHq + ItemCosts: + - ItemCost + - CurrencyCost + - HqCost + - CollectabilityCost - name: Quest type: link targets: [Quest] diff --git a/Schemas/2024.06.18.0000.0000/Aetheryte.yml b/Schemas/2024.06.18.0000.0000/Aetheryte.yml index 89163ac..501e29d 100644 --- a/Schemas/2024.06.18.0000.0000/Aetheryte.yml +++ b/Schemas/2024.06.18.0000.0000/Aetheryte.yml @@ -33,8 +33,8 @@ fields: targets: [Map] - name: AetherstreamX - name: AetherstreamY + - name: Unknown2 - name: AethernetGroup - name: Order - - name: Unknown2 - name: IsAetheryte - name: Invisible diff --git a/Schemas/2024.06.18.0000.0000/CraftAction.yml b/Schemas/2024.06.18.0000.0000/CraftAction.yml index 4b0210e..19a8894 100644 --- a/Schemas/2024.06.18.0000.0000/CraftAction.yml +++ b/Schemas/2024.06.18.0000.0000/CraftAction.yml @@ -38,7 +38,8 @@ fields: targets: [ActionTimeline] - name: Icon type: icon - - name: Unknown0 + - name: RequiredStatus + targets: [Status] - name: ClassJobCategory type: link targets: [ClassJobCategory] diff --git a/Schemas/2024.06.18.0000.0000/ItemFood.yml b/Schemas/2024.06.18.0000.0000/ItemFood.yml index c1cf583..b99773f 100644 --- a/Schemas/2024.06.18.0000.0000/ItemFood.yml +++ b/Schemas/2024.06.18.0000.0000/ItemFood.yml @@ -22,3 +22,11 @@ fields: - name: IsRelative type: array count: 3 +relations: + Params: + - BaseParam + - IsRelative + - Value + - Max + - ValueHQ + - MaxHQ diff --git a/Schemas/2024.06.18.0000.0000/ItemStainCondition.yml b/Schemas/2024.06.18.0000.0000/ItemStainCondition.yml index df679af..23c2381 100644 --- a/Schemas/2024.06.18.0000.0000/ItemStainCondition.yml +++ b/Schemas/2024.06.18.0000.0000/ItemStainCondition.yml @@ -1,3 +1,5 @@ name: ItemStainCondition fields: - - name: Unknown0 + - name: UnlockQuest + type: link + targets: [Quest] diff --git a/Schemas/2024.06.18.0000.0000/SpecialShop.yml b/Schemas/2024.06.18.0000.0000/SpecialShop.yml index ea2cc80..01ada37 100644 --- a/Schemas/2024.06.18.0000.0000/SpecialShop.yml +++ b/Schemas/2024.06.18.0000.0000/SpecialShop.yml @@ -26,6 +26,9 @@ fields: - name: ItemCost type: array count: 3 + fields: + - type: link + targets: [Item] - name: Quest type: link targets: [Quest] @@ -49,6 +52,16 @@ fields: - name: ReceiveHq type: array count: 2 + relations: + ReceiveItems: + - Item + - ReceiveCount + - ReceiveHq + ItemCosts: + - ItemCost + - CurrencyCost + - HqCost + - CollectabilityCost - name: Quest type: link targets: [Quest] diff --git a/Schemas/2024.07.06.0000.0000/Aetheryte.yml b/Schemas/2024.07.06.0000.0000/Aetheryte.yml index 89163ac..501e29d 100644 --- a/Schemas/2024.07.06.0000.0000/Aetheryte.yml +++ b/Schemas/2024.07.06.0000.0000/Aetheryte.yml @@ -33,8 +33,8 @@ fields: targets: [Map] - name: AetherstreamX - name: AetherstreamY + - name: Unknown2 - name: AethernetGroup - name: Order - - name: Unknown2 - name: IsAetheryte - name: Invisible diff --git a/Schemas/2024.07.06.0000.0000/CraftAction.yml b/Schemas/2024.07.06.0000.0000/CraftAction.yml index 4b0210e..19a8894 100644 --- a/Schemas/2024.07.06.0000.0000/CraftAction.yml +++ b/Schemas/2024.07.06.0000.0000/CraftAction.yml @@ -38,7 +38,8 @@ fields: targets: [ActionTimeline] - name: Icon type: icon - - name: Unknown0 + - name: RequiredStatus + targets: [Status] - name: ClassJobCategory type: link targets: [ClassJobCategory] diff --git a/Schemas/2024.07.06.0000.0000/ItemFood.yml b/Schemas/2024.07.06.0000.0000/ItemFood.yml index c1cf583..448b92d 100644 --- a/Schemas/2024.07.06.0000.0000/ItemFood.yml +++ b/Schemas/2024.07.06.0000.0000/ItemFood.yml @@ -22,3 +22,11 @@ fields: - name: IsRelative type: array count: 3 +relations: + Params: + - BaseParam + - IsRelative + - Value + - Max + - ValueHQ + - MaxHQ \ No newline at end of file diff --git a/Schemas/2024.07.06.0000.0000/ItemStainCondition.yml b/Schemas/2024.07.06.0000.0000/ItemStainCondition.yml index df679af..23c2381 100644 --- a/Schemas/2024.07.06.0000.0000/ItemStainCondition.yml +++ b/Schemas/2024.07.06.0000.0000/ItemStainCondition.yml @@ -1,3 +1,5 @@ name: ItemStainCondition fields: - - name: Unknown0 + - name: UnlockQuest + type: link + targets: [Quest] diff --git a/Schemas/2024.07.06.0000.0000/SpecialShop.yml b/Schemas/2024.07.06.0000.0000/SpecialShop.yml index ea2cc80..01ada37 100644 --- a/Schemas/2024.07.06.0000.0000/SpecialShop.yml +++ b/Schemas/2024.07.06.0000.0000/SpecialShop.yml @@ -26,6 +26,9 @@ fields: - name: ItemCost type: array count: 3 + fields: + - type: link + targets: [Item] - name: Quest type: link targets: [Quest] @@ -49,6 +52,16 @@ fields: - name: ReceiveHq type: array count: 2 + relations: + ReceiveItems: + - Item + - ReceiveCount + - ReceiveHq + ItemCosts: + - ItemCost + - CurrencyCost + - HqCost + - CollectabilityCost - name: Quest type: link targets: [Quest] diff --git a/Schemas/2024.07.10.0001.0000/Aetheryte.yml b/Schemas/2024.07.10.0001.0000/Aetheryte.yml index 89163ac..501e29d 100644 --- a/Schemas/2024.07.10.0001.0000/Aetheryte.yml +++ b/Schemas/2024.07.10.0001.0000/Aetheryte.yml @@ -33,8 +33,8 @@ fields: targets: [Map] - name: AetherstreamX - name: AetherstreamY + - name: Unknown2 - name: AethernetGroup - name: Order - - name: Unknown2 - name: IsAetheryte - name: Invisible diff --git a/Schemas/2024.07.10.0001.0000/CraftAction.yml b/Schemas/2024.07.10.0001.0000/CraftAction.yml index 4b0210e..19a8894 100644 --- a/Schemas/2024.07.10.0001.0000/CraftAction.yml +++ b/Schemas/2024.07.10.0001.0000/CraftAction.yml @@ -38,7 +38,8 @@ fields: targets: [ActionTimeline] - name: Icon type: icon - - name: Unknown0 + - name: RequiredStatus + targets: [Status] - name: ClassJobCategory type: link targets: [ClassJobCategory] diff --git a/Schemas/2024.07.10.0001.0000/ItemFood.yml b/Schemas/2024.07.10.0001.0000/ItemFood.yml index c1cf583..448b92d 100644 --- a/Schemas/2024.07.10.0001.0000/ItemFood.yml +++ b/Schemas/2024.07.10.0001.0000/ItemFood.yml @@ -22,3 +22,11 @@ fields: - name: IsRelative type: array count: 3 +relations: + Params: + - BaseParam + - IsRelative + - Value + - Max + - ValueHQ + - MaxHQ \ No newline at end of file diff --git a/Schemas/2024.07.10.0001.0000/ItemStainCondition.yml b/Schemas/2024.07.10.0001.0000/ItemStainCondition.yml index df679af..23c2381 100644 --- a/Schemas/2024.07.10.0001.0000/ItemStainCondition.yml +++ b/Schemas/2024.07.10.0001.0000/ItemStainCondition.yml @@ -1,3 +1,5 @@ name: ItemStainCondition fields: - - name: Unknown0 + - name: UnlockQuest + type: link + targets: [Quest] diff --git a/Schemas/2024.07.10.0001.0000/SpecialShop.yml b/Schemas/2024.07.10.0001.0000/SpecialShop.yml index ea2cc80..01ada37 100644 --- a/Schemas/2024.07.10.0001.0000/SpecialShop.yml +++ b/Schemas/2024.07.10.0001.0000/SpecialShop.yml @@ -26,6 +26,9 @@ fields: - name: ItemCost type: array count: 3 + fields: + - type: link + targets: [Item] - name: Quest type: link targets: [Quest] @@ -49,6 +52,16 @@ fields: - name: ReceiveHq type: array count: 2 + relations: + ReceiveItems: + - Item + - ReceiveCount + - ReceiveHq + ItemCosts: + - ItemCost + - CurrencyCost + - HqCost + - CollectabilityCost - name: Quest type: link targets: [Quest] diff --git a/Schemas/2024.07.24.0000.0000/Aetheryte.yml b/Schemas/2024.07.24.0000.0000/Aetheryte.yml index 89163ac..501e29d 100644 --- a/Schemas/2024.07.24.0000.0000/Aetheryte.yml +++ b/Schemas/2024.07.24.0000.0000/Aetheryte.yml @@ -33,8 +33,8 @@ fields: targets: [Map] - name: AetherstreamX - name: AetherstreamY + - name: Unknown2 - name: AethernetGroup - name: Order - - name: Unknown2 - name: IsAetheryte - name: Invisible diff --git a/Schemas/2024.07.24.0000.0000/CraftAction.yml b/Schemas/2024.07.24.0000.0000/CraftAction.yml index 4b0210e..19a8894 100644 --- a/Schemas/2024.07.24.0000.0000/CraftAction.yml +++ b/Schemas/2024.07.24.0000.0000/CraftAction.yml @@ -38,7 +38,8 @@ fields: targets: [ActionTimeline] - name: Icon type: icon - - name: Unknown0 + - name: RequiredStatus + targets: [Status] - name: ClassJobCategory type: link targets: [ClassJobCategory] diff --git a/Schemas/2024.07.24.0000.0000/ItemFood.yml b/Schemas/2024.07.24.0000.0000/ItemFood.yml index c1cf583..448b92d 100644 --- a/Schemas/2024.07.24.0000.0000/ItemFood.yml +++ b/Schemas/2024.07.24.0000.0000/ItemFood.yml @@ -22,3 +22,11 @@ fields: - name: IsRelative type: array count: 3 +relations: + Params: + - BaseParam + - IsRelative + - Value + - Max + - ValueHQ + - MaxHQ \ No newline at end of file diff --git a/Schemas/2024.07.24.0000.0000/ItemStainCondition.yml b/Schemas/2024.07.24.0000.0000/ItemStainCondition.yml index df679af..23c2381 100644 --- a/Schemas/2024.07.24.0000.0000/ItemStainCondition.yml +++ b/Schemas/2024.07.24.0000.0000/ItemStainCondition.yml @@ -1,3 +1,5 @@ name: ItemStainCondition fields: - - name: Unknown0 + - name: UnlockQuest + type: link + targets: [Quest] diff --git a/Schemas/2024.07.24.0000.0000/SpecialShop.yml b/Schemas/2024.07.24.0000.0000/SpecialShop.yml index ea2cc80..01ada37 100644 --- a/Schemas/2024.07.24.0000.0000/SpecialShop.yml +++ b/Schemas/2024.07.24.0000.0000/SpecialShop.yml @@ -26,6 +26,9 @@ fields: - name: ItemCost type: array count: 3 + fields: + - type: link + targets: [Item] - name: Quest type: link targets: [Quest] @@ -49,6 +52,16 @@ fields: - name: ReceiveHq type: array count: 2 + relations: + ReceiveItems: + - Item + - ReceiveCount + - ReceiveHq + ItemCosts: + - ItemCost + - CurrencyCost + - HqCost + - CollectabilityCost - name: Quest type: link targets: [Quest] diff --git a/Schemas/2024.08.02.0000.0000/Aetheryte.yml b/Schemas/2024.08.02.0000.0000/Aetheryte.yml index 89163ac..501e29d 100644 --- a/Schemas/2024.08.02.0000.0000/Aetheryte.yml +++ b/Schemas/2024.08.02.0000.0000/Aetheryte.yml @@ -33,8 +33,8 @@ fields: targets: [Map] - name: AetherstreamX - name: AetherstreamY + - name: Unknown2 - name: AethernetGroup - name: Order - - name: Unknown2 - name: IsAetheryte - name: Invisible diff --git a/Schemas/2024.08.02.0000.0000/CraftAction.yml b/Schemas/2024.08.02.0000.0000/CraftAction.yml index 4b0210e..19a8894 100644 --- a/Schemas/2024.08.02.0000.0000/CraftAction.yml +++ b/Schemas/2024.08.02.0000.0000/CraftAction.yml @@ -38,7 +38,8 @@ fields: targets: [ActionTimeline] - name: Icon type: icon - - name: Unknown0 + - name: RequiredStatus + targets: [Status] - name: ClassJobCategory type: link targets: [ClassJobCategory] diff --git a/Schemas/2024.08.02.0000.0000/ItemFood.yml b/Schemas/2024.08.02.0000.0000/ItemFood.yml index c1cf583..2c06de5 100644 --- a/Schemas/2024.08.02.0000.0000/ItemFood.yml +++ b/Schemas/2024.08.02.0000.0000/ItemFood.yml @@ -1,24 +1,32 @@ -name: ItemFood -fields: - - name: Max - type: array - count: 3 - - name: MaxHQ - type: array - count: 3 - - name: EXPBonusPercent - - name: BaseParam - type: array - count: 3 - fields: - - type: link - targets: [BaseParam] - - name: Value - type: array - count: 3 - - name: ValueHQ - type: array - count: 3 - - name: IsRelative - type: array - count: 3 +name: ItemFood +fields: + - name: Max + type: array + count: 3 + - name: MaxHQ + type: array + count: 3 + - name: EXPBonusPercent + - name: BaseParam + type: array + count: 3 + fields: + - type: link + targets: [BaseParam] + - name: Value + type: array + count: 3 + - name: ValueHQ + type: array + count: 3 + - name: IsRelative + type: array + count: 3 +relations: + Params: + - BaseParam + - IsRelative + - Value + - Max + - ValueHQ + - MaxHQ \ No newline at end of file diff --git a/Schemas/2024.08.02.0000.0000/ItemStainCondition.yml b/Schemas/2024.08.02.0000.0000/ItemStainCondition.yml index df679af..23c2381 100644 --- a/Schemas/2024.08.02.0000.0000/ItemStainCondition.yml +++ b/Schemas/2024.08.02.0000.0000/ItemStainCondition.yml @@ -1,3 +1,5 @@ name: ItemStainCondition fields: - - name: Unknown0 + - name: UnlockQuest + type: link + targets: [Quest] diff --git a/Schemas/2024.08.02.0000.0000/SpecialShop.yml b/Schemas/2024.08.02.0000.0000/SpecialShop.yml index ea2cc80..01ada37 100644 --- a/Schemas/2024.08.02.0000.0000/SpecialShop.yml +++ b/Schemas/2024.08.02.0000.0000/SpecialShop.yml @@ -26,6 +26,9 @@ fields: - name: ItemCost type: array count: 3 + fields: + - type: link + targets: [Item] - name: Quest type: link targets: [Quest] @@ -49,6 +52,16 @@ fields: - name: ReceiveHq type: array count: 2 + relations: + ReceiveItems: + - Item + - ReceiveCount + - ReceiveHq + ItemCosts: + - ItemCost + - CurrencyCost + - HqCost + - CollectabilityCost - name: Quest type: link targets: [Quest] diff --git a/Usage.md b/Usage.md index 722b25a..7195bc4 100644 --- a/Usage.md +++ b/Usage.md @@ -285,4 +285,52 @@ Yes, the `case` dictionary may contain an *array*. This means that each case can The `AdditionalData` column in `Item` does a lot of heavy lifting. We can assume during game execution that the use of the field is heavily based on context, but for research and data exploration, having the ability to define the exact sheet is useful. Here, we can see that when `FilterGroup` is `14`, we can link to any of `HousingExterior`, `HousingInterior`, `HousingYardObject`, `HousingFurniture`, `HousingPreset`, or finally `HousingUnitedExterior`. -This works because the value for `AdditionalData` are distinct ranges, even when `FilterGroup` is `14`, thus allowing the definition here to behave like a multi link. \ No newline at end of file +This works because the value for `AdditionalData` are distinct ranges, even when `FilterGroup` is `14`, thus allowing the definition here to behave like a multi link. + +## Relations +Relations are used to group different arrays together of the same size. They are supported on every sheet and in every array declaration with more than one field. + +To best explain relations, here's an example with `ItemFood`: +```yml +name: ItemFood +fields: + - name: Max + type: array + count: 3 + - name: MaxHQ + type: array + count: 3 + - name: EXPBonusPercent + - name: BaseParam + type: array + count: 3 + fields: + - type: link + targets: [BaseParam] + - name: Value + type: array + count: 3 + - name: ValueHQ + type: array + count: 3 + - name: IsRelative + type: array + count: 3 +``` +Here, `ItemFood` contains several arrays of size 3. Each index has one `BaseParam` and its accompanying `Max`, `MaxHQ`, `Value`, `ValueHQ`, and `IsRelative` values. +These should all be related to one another, but they're instead spread out across 6 different arrays. This is a perfect example of the downsides of +[Structs of Arrays](https://en.wikipedia.org/wiki/AoS_and_SoA), since our data is best formatted using Arrays of Structs. + +Using relations, we can circumvent this issue by explicitly grouping these 6 arrays together into one array with 3 structs. +To do so, we can add the following to the end of the schema file: +```yml +relations: + Params: + - BaseParam + - IsRelative + - Value + - Max + - ValueHQ + - MaxHQ +``` +Now, instead of accessing each array individually, `Params` is the only available field, where every element of `Params` contains all the related columns. \ No newline at end of file