Skip to content

Milestone 147: lock layout package v2 shape#170

Merged
Coasterpete merged 1 commit into
mainfrom
milestone-147-pr2-layout-package-v2-shape-lock
Jun 18, 2026
Merged

Milestone 147: lock layout package v2 shape#170
Coasterpete merged 1 commit into
mainfrom
milestone-147-pr2-layout-package-v2-shape-lock

Conversation

@Coasterpete

Copy link
Copy Markdown
Owner

Summary

Locks the intended TrackLayoutPackageV2 JSON shape before implementation.

This is a docs-only contract-shape milestone. It does not add V2 DTOs, schema, validators, mappers, or runtime behavior.

Shape Decisions

  • Contract remains quantum.track_layout_package.
  • Version is 2.
  • Root fields are contract, version, metadata, startPose, sections, banking, and heartline.
  • metadata.layoutId is optional and nullable.
  • V2 carries forward V1-compatible start pose, section, and banking shapes.
  • heartline is required by the intended schema but nullable.
  • First non-null heartline kind is constantOffset.
  • Heartline offsets use centerlineStation and sampled frame axes.
  • V1-to-V2 migration sets heartline: null.

Explicitly Deferred

  • V2 DTOs
  • V2 schema
  • V2 validator
  • V2 mapper
  • Runtime behavior
  • Force profile package
  • Train consist package
  • Block/operations package

Validation

  • dotnet test QuantumCoasterWorks.sln --no-restore
  • git diff --check

Tests: 1,668 / 1,668 passed.

Adds the TrackLayoutPackageV2 shape lock documentation, defining the intended version 2 root fields, metadata layoutId, section shape, banking shape, required nullable heartline block, V1 migration rules, compatibility rules, and JSON examples.

Tests: 1,668/1,668 passed. git diff --check passed.
@Coasterpete Coasterpete merged commit 3b2d16b into main Jun 18, 2026
1 check passed
@Coasterpete Coasterpete deleted the milestone-147-pr2-layout-package-v2-shape-lock branch June 18, 2026 19:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant