Biblioteca central de chaves/labels reutilizáveis pra evitar duplicação entre páginas.

fieldLibrary#

Define uma biblioteca central de pares (key, label, description) que outros addons referenciam em vez de digitar strings. É a "fonte de verdade" pra qualquer taxonomia compartilhada do projeto.

Por que importa#

Em projetos médios/grandes você tem dezenas de "campos" repetidos: craftTimeSeconds aparece em 50 receitas, "Espada" como categoria em 30 itens, "preço de compra" em 80 economias. Sem biblioteca central, cada lugar inventa o nome — e quando você decide renomear "Espada" pra "Lâmina" precisa caçar em 30 lugares.

A Field Library te deixa renomear num lugar só e a mudança propaga.

Onde costuma viver#

  • Página em branco dedicada: "Bibliotecas" ou "Taxonomia".
  • Page type 🎯 Atributos cria uma Field Library opcional ao lado do attributeDefinitions (pra reaproveitar nomes de atributo entre tabelas).

Singleton — 1 library por página, mas você pode ter múltiplas páginas com bibliotecas diferentes (ex.: "Tipos de Item", "Categorias de Skill", "Slots de Equipamento").

Schema#

CampoTipoPadrãoDescrição
idSimstringID interno.
nameSimstringNome amigável (ex.: Categorias de Item, Slots de Equipamento).
entriesSimFieldLibraryEntry[]Lista de campos compartilháveis.

FieldLibraryEntry#

CampoTipoPadrãoDescrição
idSimstringID interno (estável). Refs externas usam este id.
keySimstringChave técnica (snake_case). Vai pro JSON quando aplicável.
labelSimstringNome amigável que aparece na UI.
descriptionstringDescrição livre da intenção do campo (notas, exemplos).

Exemplo#

Biblioteca de Categorias de Item:

{
  "id": "lib-item-categories",
  "name": "Categorias de Item",
  "entries": [
    {
      "id": "cat-weapon",
      "key": "weapon",
      "label": "Arma",
      "description": "Itens equipáveis que aumentam ATK ou aplicam efeito ofensivo."
    },
    {
      "id": "cat-armor",
      "key": "armor",
      "label": "Armadura",
      "description": "Itens equipáveis que aumentam DEF."
    },
    {
      "id": "cat-consumable",
      "key": "consumable",
      "label": "Consumível",
      "description": "Itens de uso único (poções, comidas, scrolls)."
    },
    {
      "id": "cat-quest",
      "key": "quest",
      "label": "Item de Missão",
      "description": "Não vendível, não descartável, vinculado a quest."
    }
  ]
}

Agora cada inventory.categoryLibraryRef aponta pra {libraryAddonId, entryId} em vez de repetir a string "Espada" / "Arma".

Quem aponta pra fieldLibrary#

  • inventory.categoryLibraryRef — categoria do item.
  • progressionTable.columns[].libraryRef — nome de coluna.
  • dataSchema.entries[].libraryRef — key e label do campo.

Quando você renomeia uma entry da library, todos os refs propagam automaticamente — você não vê o label antigo em lugar nenhum.

Validação#

  • Refs quebradas: se você apagar uma entry, todos os addons que a referenciavam mostram aviso.
  • Keys duplicadas: o painel previne dois entries com a mesma key dentro da library.
  • Ordem persistente: as entries têm ordem manual (drag-and-drop), exportadas nessa ordem.

Wizard#

Não tem wizard próprio, mas:

  • A page type 🎯 Atributos opcionalmente inclui um fieldLibrary ao lado do attributeDefinitions — útil quando os atributos vão também alimentar colunas de tabelas de progressão.

Veja também#