Skip to content

Define canonical custom-game-settings JSON ingestion contract #33

Description

@Teakowa

Goal

Define the canonical workshop-rs ingestion contract for custom-game-settings JSON/lobby imports so source-language consumers can reach the canonical settings carrier, validation, and emitter without implementing private settings semantics.

Context

del-rs Issue #32 has corpus evidence for import "customGameSettings.json" and .lobby project imports. Released workshop-rs 0.1.1 exposes a canonical settings::Settings tree and settings emission, but no public contract for converting the JSON/lobby carrier used by source-language projects into that tree with stable diagnostics and provenance.

Scope

  • Define accepted JSON/lobby input shape, merge semantics, canonical path/key validation, and locale handling.
  • Define structured diagnostics for malformed input, unknown settings paths, wrong value kinds, and missing mappings.
  • Preserve source-file and member provenance through the carrier and emission boundary.
  • Add provenance-linked fixtures and parser/carrier/emitter round-trip evidence.

Non-goals

  • DEL project loading or source-language import resolution.
  • A DEL-local settings schema, table, locale map, or emitter.
  • Presentation-only compiler options.

Acceptance criteria

  • A reviewed public workshop-rs API/contract accepts or rejects the supported JSON/lobby form deterministically.
  • Canonical settings validation/emission remains owned by workshop-rs.
  • del-rs and other consumers can integrate through the public contract without copying settings data or semantics.

Evidence

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