Skip to content

Build the canonical typed Workshop settings catalog #110

Description

@Teakowa

Parent: #108
Depends on: #109

Goal

Populate the canonical typed settings semantic model from #109 with the reviewed current Custom Game settings surface and make it the single canonical data source for settings facts.

Context

The current implementation distributes settings facts across the exact path table, generated locale data, generated hero-setting data, parser/emitter behavior, validation, and corpus-derived expectations. #109 defines the semantic contract these facts must populate.

The catalog may use common hero/ability definitions, explicit exclusions, and hero-specific additions as a compact authoring/generation strategy, but consumers should observe only the effective canonical definitions/applicability. The internal inheritance/deduplication representation is not itself a public semantic contract.

Scope

  • Populate reviewed main, lobby, gamemodes, heroes, extensions, and other evidenced Workshop-native setting scopes using the Define the canonical typed settings schema and hero applicability model #109 model.
  • Reconcile the existing settings table, generated locale data, generated hero settings, raw Workshop corpus, documented Workshop settings surface, and mature OverPy/OSTW reference data into one deterministic canonical dataset/generation path.
  • Assign stable locale-independent setting concepts that normally avoid concrete hero/ability display names when the same Workshop concept can be represented through SettingTarget.
  • Populate explicit value domains, including enum domains and evidence-backed numeric/percent min / max effective bounds.
  • Where evidence confirms Workshop clamps out-of-range numeric/percent values, record enough canonical data for authored-vs-effective normalization without rewriting the authored value.
  • Model effective hero/ability applicability from real Workshop evidence. Common definitions + exclusions/additions are encouraged where they reduce duplication accurately, but the generated result must not depend on consumers understanding that organization.
  • Use canonical hero + logical slot + optional variant topology for ability-related targets where applicable.
  • Preserve genuinely specific setting concepts when the corpus does not justify a broader common abstraction; do not invent generic settings solely for uniformity.
  • Record locale mappings and provenance separately from canonical identity.
  • Detect duplicate/conflicting identities, invalid scopes/targets/types, impossible applicability, inconsistent numeric bounds, missing required provenance, and inconsistent locale mappings during generation/checking.
  • Remove or route semantic duplication from old generated tables only after the canonical catalog proves equivalent or more accurate behavior.

Non-goals

  • Exposing common/exclusion/addition inheritance as a required public API.
  • Hand-writing one complete settings schema per hero when a shared authoring definition accurately applies.
  • Inventing settings to make hero schemas look uniform.
  • Encoding localized ability names such as Sleep Dart or Coach Gun into canonical setting identity unless a reviewed semantic distinction truly requires it.
  • Treating OverPy/OSTW data as authoritative without reconciliation against Workshop evidence.
  • Adding UI-only step/slider metadata.
  • Adding gameplay balance facts that are not settings semantics.
  • Implementing the public typed editing/query API in this issue.
  • Fixed-count assertions as evidence of completeness.

Acceptance criteria

  • The reviewed current Workshop settings surface is represented by one canonical typed dataset/generation path implementing Define the canonical typed settings schema and hero applicability model #109.
  • Every represented setting has canonical identity, Workshop scope, semantic target/applicability, value domain, locale mapping where evidenced, and provenance.
  • Numeric/percent definitions include evidence-backed effective min/max bounds where known, and evidenced clamp behavior can be derived without destroying authored source values.
  • Canonical identities prefer reusable Workshop setting concepts plus target/applicability over hero/ability display-name-specific identities.
  • Common hero/ability authoring definitions plus exclusions/additions reproduce real effective settings without false universal capabilities, while consumers remain independent of that internal organization.
  • Hero-specific/exceptional settings remain explicit and queryable rather than encoded as ad hoc localized strings outside the catalog.
  • Existing raw Workshop settings corpus parses/validates/emits through definitions derived from the canonical catalog without regression.
  • Supported locale mappings remain data-driven and missing mappings remain explicit.
  • Generation/checking detects schema conflicts and stale/duplicate semantic tables instead of allowing parallel sources of truth.
  • Tests protect stable schema/data invariants and representative normal/exceptional/clamping cases rather than arbitrary catalog counts.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions