maniator / maniator/verticopolis

[Parity]: [P3] TDT quirk A/B round-trip faithfulness (needs own spec + party)

Open
#317 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

classic parity
Dominant language
TypeScript
Stars
5
Forks
1
PR merge metrics
No merged PRs in 30d

Description

Imported from the engineering backlog (_bmad-output/implementation-artifacts/backlog.md, story tdt-quirkAB-faithfulness).
Priority P3 (do-first order) | Severity: low | Status: idea | Epic: SimTower parity | Type: feature-request | Recorded: 2026-07-13

Divergence from the 1994 original

Gated: needs its own spec + party. Owner asked (overriding the earlier party ruling that A/B are canonicalizations, not bugs) to make the round-trip FAITHFUL for the two TDT canonicalizations documented in docs/canon/tdt-format.md §14: (A) a plain floor on a sky-lobby story (15/30/45...) imports back as a lobby; (B) a vacant never-simulated built shop imports as occupied+subtype. Both are lossy at the TDT seam because the format can't represent the pre-canonical state. The RIGHT fix is engine-side, NOT touching parseTDT (Cloud's standing ruling): stop the engine from PRODUCING states the format can't hold, i.e. (A) a placement rule so a sky-lobby story can't carry bare floor tiles without a lobby, (B) assign a retail subtype at placement so a built shop is never subtype-less. This is a gameplay-adjacent engine change -> full gds-code-review + a Samus feel check; write a gdd-/spec first. Deferred from the 2026-07-13 tdt-fixes session (party: do not rush engine placement changes at a session tail).

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with docs/canon/tdt-format.md §14 and the imported story in _bmad-output/implementation-artifacts/backlog.md to understand both lossy canonicalizations. Identify the engine placement entry points involved, then prepare the requested gdd-/spec before implementation. Done requires an agreed spec, engine-side prevention of unrepresentable states, full gds-code-review, and a Samus feel check.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
game-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.