Skip to content

docs(architecture): define M168 coaster project composition boundary - #204

Merged
Coasterpete merged 1 commit into
mainfrom
feature/m168-composition-boundary
Jul 27, 2026
Merged

Coasterpete merged 1 commit into
mainfrom
feature/m168-composition-boundary

Conversation

@Coasterpete

Copy link
Copy Markdown
Owner

M168.4: Coaster Project and Ride-System Composition Boundary

Summary

This PR completes M168 with a strictly design-only architectural milestone.

It defines and audits the long-term ownership and dependency boundaries between Track Layout, future Coaster Projects, Ride Systems, train definitions, hardware, supports, clearance, operations, simulation, audio, renderer/media resources, and editor workspace presentation.

No production code, tests, project files, schemas, persistence, UI, runtime behavior, assets, or engine integrations were modified.


Included

  • Added an accepted Architecture Decision Record (ADR) defining the long-term Coaster Project composition boundary.
  • Documented the conceptual ownership model separating Track Layout geometry from future composed project resources.
  • Established the future role of Ride Systems as engine-agnostic backend definitions that consume Track geometry rather than redefine it.
  • Documented ownership of future hardware mechanisms including:
    • Chain lifts
    • Cable lifts
    • Tire drives
    • Launches
    • Brakes
    • Stations
    • Block zones
    • Switch tracks
    • Transfer tracks
    • Turntables
    • Drop tracks
    • Tilt tracks
    • Bounce tracks
    • Spike tracks
    • Elevator tracks
    • Future compatible mechanisms
  • Added a conceptual dependency-direction diagram.
  • Added an ownership matrix covering:
    • Coaster Project composition
    • Track Layout
    • Ride Systems
    • Train definitions
    • Hardware
    • Supports
    • Clearance
    • Operations
    • Simulation
    • Audio
    • Renderer/media resources
    • Workspace presentation
  • Performed a read-only repository architecture audit.
  • Verified M168.3 projection reuse remains Track-scoped and does not imply future project identity.
  • Added a future architecture review checklist and revisit triggers.
  • Updated the M168 stabilization plan to mark all four sub-milestones complete.

Repository Audit

The repository audit reviewed:

  • Quantum.* project references
  • Dependency contract tests
  • Track Layout ownership
  • Track authoring services
  • PreparedTrackGraphState ownership
  • TrackAuthoringSession
  • TrackAuthoringEvaluationCoordinator
  • M168.3 projection reuse
  • Train workspace ownership
  • Physics provider boundaries
  • Export boundaries
  • Renderer boundaries
  • Avalonia ownership
  • Unity and Unreal dependency direction

Results

Aligned

  • Track Layout remains geometry-only and independently valid.
  • Application scheduling remains frontend-neutral.
  • Physics consumes Track geometry without owning it.
  • Export pipelines remain downstream outputs.
  • Frontend and engine integrations depend on backend contracts rather than the reverse.

Watch Items

  • Train/support utility types currently reside in Quantum.Track.
  • Train workspace state remains frontend-owned and in-memory.
  • Some simulation consumers currently bind to mutable TrackDocument.

These are acceptable prototype placements and do not currently violate the intended architecture.

Coupling Concerns

None identified.

No Track Layout schema contamination, reverse frontend dependency, renderer dependency, or project-level ownership leakage was found.


Architectural Decision

This ADR establishes that:

  • Track Layout remains an independently valid geometry contract.
  • A future Coaster Project becomes the composition root.
  • Ride Systems compose compatible resources without redefining authored centerline geometry.
  • Ride System and Hardware definitions own moving-track mechanisms and other compatible hardware concepts.
  • Generated supports, clearance, simulation state, meshes, and other derived artifacts remain outputs rather than authored geometry.
  • Workspace presentation remains presentation only.
  • Renderer, engine, media, and audio resources remain outside backend domain ownership.

Validation

Check Result
git diff --check ✅ Passed
Release build ✅ 0 warnings, 0 errors
Release test suite ✅ 1,991 passed
Documentation-only scope ✅ Confirmed
Production code modified ❌ None

Outcome

This PR completes the M168 Interactive Authoring Stabilization milestone.

Delivered across the milestone:

  • M168.1 — Reliability and lifecycle validation
  • M168.2 — Correlated diagnostics and timing
  • M168.3 — Interactive authoring performance hardening
  • M168.4 — Long-term Coaster Project composition boundary

Together these changes strengthen the interactive authoring architecture established by M167 while deliberately avoiding premature Ride System implementation, project persistence, renderer coupling, or Coaster Project composition logic.

M169 can now build on a well-defined architectural foundation with clear ownership boundaries already documented.

@Coasterpete
Coasterpete merged commit a4ad466 into main Jul 27, 2026
1 check passed
@Coasterpete
Coasterpete deleted the feature/m168-composition-boundary branch July 27, 2026 14:53
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