Support for global.json files

This commit is contained in:
2026-06-05 10:36:47 +02:00
parent d0e065536c
commit c672a1ff33
5 changed files with 804 additions and 264 deletions
+9 -20
View File
@@ -264,18 +264,6 @@ topdata:
- namespace: portraits
mode: first_null_row
minimum_row: 15000
class_feat_injections:
global_feats:
- feat: feat:literate
list: 3
granted_on_level: 1
on_menu: 0
unless_present: [feat:illiterate]
class_skill_masterfeats:
- masterfeat: masterfeats:skill_focus
list: 1
granted_on_level: -1
on_menu: 0
wiki:
source: topdata/wiki
output_root: wiki
@@ -350,14 +338,15 @@ topdata:
target_level: 60
```
`topdata.class_feat_injections` controls generated rows for every
`classes/feats/*.json` table. `global_feats` injects concrete `feat:*`
references unless the class already authors that feat; `require_present` and
`unless_present` can make a rule conditional on other feat references already
present in the same class feat table. `class_skill_masterfeats` expands a
`masterfeats:*` family once for each class skill, using the configured
`list`, `granted_on_level`, and `on_menu` values. When this block is omitted,
the toolkit keeps its legacy default injections for compatibility.
Topdata dataset directories may include an optional `global.json`. For
base/module datasets, it supports normal `entries`, `overrides`, and `columns`
and applies after ordinary modules; global overrides may use `{"match":"all"}`
to update every final row. For recursive plain datasets, ancestor manifests
apply to descendant tables and may define `injections` with optional
`require_present` and `unless_present` conditions. This is the preferred
authoring surface for class feat and class skill global rows. The legacy
`topdata.class_feat_injections` YAML block still loads for compatibility when no
class feat `global.json` applies.
`topdata.wiki.alignment_links.target_pattern` controls whether formatted
alignment names become internal wiki links. The pattern may use `{alignment}`