Campos livres (key-value) que ficam atrelados à página com tipo, validação e refs.
dataSchema#
Define pares chave-valor com tipo (int, float, seconds, percent, boolean, string) que ficam vinculados à página. É o "addon coringa" — quando nenhum dos addons especializados cobre o que você precisa, este resolve.
Por que importa#
Game design tem muito caso "preciso anotar X aqui": rarity da arma, nível requerido, animação, número mágico de balanceamento. Sem o data schema, esses campos viram strings soltas no richDoc, sem validação, sem possibilidade de export estruturado. Aqui você ganha tipo + min/max + ref a outros addons sem precisar criar um novo tipo de addon.
Onde costuma viver#
- Páginas em branco quando você quer adicionar campos livres tipados.
- Páginas tipadas quando precisa de campos extras que o addon principal não cobre.
Singleton — 1 schema por página, com N entries.
Schema#
| Campo | Tipo | Padrão | Descrição |
|---|---|---|---|
idSim | string | ID interno. | |
nameSim | string | Nome amigável (ex.: Metadados, Stats Extras). | |
entriesSim | DataSchemaEntry[] | Lista de campos. |
DataSchemaEntry#
| Campo | Tipo | Padrão | Descrição |
|---|---|---|---|
idSim | string | ID interno. | |
keySim | string | Chave técnica (snake_case). Vai pro JSON exportado. | |
labelSim | string | Nome amigável que aparece na UI. | |
libraryRef | { libraryAddonId, entryId } | Quando preenchido, key e label vêm da Field Library (taxonomia central). | |
valueTypeSim | "int" | "float" | "seconds" | "percent" | "boolean" | "string" | Tipo do valor — define input no painel e formatação. | |
valueSim | number | boolean | string | O valor atual. | |
min | number | Piso (numéricos). | |
max | number | Teto (numéricos). | |
unit | string | Sufixo visual (kg, mph, etc.). | |
unitXpRef | string (sectionId) | Quando o valor representa nível, aponta pra curva de XP usada como referência visual. | |
economyLinkRef | string (sectionId) | Quando o valor é puxado de um economyLink — qual seção. | |
economyLinkField | EconomyLinkFieldKey | Quando economyLinkRef preenchido — qual campo daquele addon (buyValue, sellValue, etc.). | |
productionRef | string (addonId) | Quando o valor é puxado de um production — qual addon (na mesma seção). | |
productionField | ProductionFieldKey | Quando productionRef preenchido — qual campo do production. | |
usePageDataId | boolean | Quando true, o valor é o próprio dataId da página onde o schema vive. | |
notes | string | Notas livres. |
Exemplo#
Schema com 3 campos: rarity (string), required level (int), discovery date (string):
{
"id": "schema-meta",
"name": "Metadados",
"entries": [
{
"id": "f1",
"key": "rarity",
"label": "Raridade",
"valueType": "string",
"value": "épico"
},
{
"id": "f2",
"key": "required_level",
"label": "Nível requerido",
"valueType": "int",
"value": 25,
"min": 1,
"max": 100,
"unit": "lv"
},
{
"id": "f3",
"key": "discovered_in",
"label": "Descoberto em",
"valueType": "string",
"value": "Patch 1.4"
}
]
}
Refs computadas#
Os campos economyLinkRef/economyLinkField e productionRef/productionField permitem valores derivados: o painel mostra o valor atual do outro addon em vez de você digitar. Útil pra refletir "preço de compra" da economyLink no schema sem duplicar o número.
Quando o addon-fonte muda, o valor "viaja" — se o economyLink mudar de 100 pra 120, o schema reflete automaticamente.
Wizard#
Não tem wizard próprio. Você adiciona o addon manualmente quando precisa.