Files
sow-tools/internal/topdata/MASTERFEATS_CONTRACT.md
T
2026-04-13 23:49:59 +02:00

1.5 KiB

masterfeats Canonical Contract

masterfeats is a stable native canonical family consumed directly by feat generation, class-feat expansion, and inheritance/ref resolution.

Current canonical scope:

  • dataset root: topdata/data/masterfeats/
  • required files:
    • base.json
    • lock.json
  • generated output:
    • masterfeats.2da

base.json

Canonical shape:

{
  "output": "masterfeats.2da",
  "columns": ["LABEL", "STRREF", "DESCRIPTION", "..."],
  "rows": [
    {
      "id": 0,
      "key": "masterfeats:weaponfocus",
      "LABEL": "WeaponFocus",
      "STRREF": "6490",
      "DESCRIPTION": "436"
    }
  ]
}

Rules:

  • output must be exactly masterfeats.2da
  • columns must include LABEL, STRREF, and DESCRIPTION
  • every canonical row must have a non-empty key
  • row keys must start with masterfeats:
  • inline TLK payloads are allowed in STRREF and DESCRIPTION
  • numeric/text references are both allowed where the native TLK compiler already supports them

lock.json

Canonical shape:

{
  "masterfeats:weaponfocus": 0
}

Rules:

  • every key must start with masterfeats:
  • every value must be numeric
  • the lockfile remains the canonical stable id source for authored keys

Module contributions

This family continues to support the shared canonical module shapes already used by native datasets:

  • columns
  • entries
  • overrides

Those shapes are validated generically in topdata.go; this contract only adds the family-specific guarantees for masterfeats.