Skip to content

Content tooling: establish grammar contracts and a lossless parity corpus #17

Description

@zoeyrose

Parent and roadmap

Outcome

Establish the measured grammar, corpus, interchange contracts, and parity tests needed before Atrinik replaces any authored-content parser or writer.

Scope

  • Inventory the complete map and nested-archetype grammar plus every current parser, writer, checker, collector, and analyzer.
  • Build representative and adversarial fixtures covering comments, line endings, multiline messages, unknown/custom fields, nested inventories, multipart objects, exits, tiled/stacked maps, attribution, and malformed input.
  • Define versioned JSON contracts for diagnostics, inspection results, patches, errors, and semantic comparison.
  • Add byte-identical no-op round-trip expectations and semantic comparison baselines against current server loading and checker behavior.

Superseded path / cleanup target

Do not delete a parser in this child. Record each duplicate consumer and the parity evidence it will require before later removal.

Acceptance criteria

  • The grammar/consumer inventory is complete and linked from architecture documentation.
  • The corpus covers every known syntax and load-mode boundary with stable expected results.
  • Diagnostic, inspection, patch, and error schemas are versioned and validated.
  • No-op and semantic-parity tests run deterministically without modifying authored or generated content.

Validation baseline

Before: grammar knowledge and fixtures are scattered across Flex loaders and partial tools.

After: one reviewed corpus and contract suite defines observable legacy behavior and safe replacement boundaries.

Run the new corpus/contract tests, the existing map/content checks they characterize, and git diff --check.

This issue is a bounded child of atrinik/editor#13. The parent remains open until every sibling child is complete.

Ownership boundary

This issue exclusively owns the complete legacy grammar/load-mode and producer/consumer inventory, the representative/adversarial parity corpus, and the observable compatibility baselines. #16 must consume these reviewed artifacts and must not repeat or fork the inventory; it owns only syntax prototypes, performance measurements, and the authored-syntax decision.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions