Document public API for drag-drop integration:
- isValidPosition() for position validation
- validDayRange() for precomputing valid days
- barrierGames() for visual highlighting
- Integration patterns for ItineraryTableViewController
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Phase 2: Constraint Validation
- 2 plans in 1 wave (parallel)
- Both plans autonomous (no checkpoints)
Plan 02-01: Migrate 13 XCTest tests to Swift Testing
Plan 02-02: Add edge case tests and document constraint API
Note: ItineraryConstraints is already fully implemented.
This phase verifies and standardizes tests.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Phase 2: Constraint Validation
- Discovered ItineraryConstraints already implemented
- 17 XCTest tests cover all CONS-* requirements
- Integration with ItineraryTableViewController verified
- Main work: migrate tests to Swift Testing
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Phase 1 verified:
- 8/8 requirements satisfied (DATA-01 through DATA-05, PERS-01 through PERS-03)
- 34 tests passing (22 unit + 12 integration)
- SortOrderProvider with 6 methods for sortOrder calculation
- Trip extension with day derivation methods
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 01-01: Reframe must_haves.truths to user-observable behaviors
- 01-01: Remove unimplemented key_link (wiring happens in later phases)
- 01-02: Add test case for DATA-04 (custom items at any position)
- 01-02: Add must_haves.truths entry for custom item flexibility
- 01-02: Document LocalItineraryItem is standalone (no sibling models needed)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>