Skip to content

Fix USH entity hierarchy: reparent sub-area children + drop event-variant aliases - #268

Merged
cubehouse merged 1 commit into
mainfrom
fix/ush-nonsurfaced-venue-parent
Jul 28, 2026
Merged

Fix USH entity hierarchy: reparent sub-area children + drop event-variant aliases#268
cubehouse merged 1 commit into
mainfrom
fix/ush-nonsurfaced-venue-parent

Conversation

@cubehouse

Copy link
Copy Markdown
Member

Problem

Universal Studios Hollywood is missing ~73 entities on the wiki — most of its dining, plus new rides including Fast & Furious: Hollywood Drift and Bowser Jr. Challenge. The park shows 41 children when it should have ~100+.

Root cause: placeToEntity sets each child's parentId to its raw venue_id. For USH those are ush.upper_lot / ush.lower_lot / ush.cw, and only ush.ush is surfaced as a park entity (PARK_PLACE_ID_TO_LEGACY_VENUE_ID). A child pointing at a parent that's never emitted gets stranded in the sync's unresolved-parent queue every cycle and never pushes.

Changes

  1. Reparent non-surfaced sub-areas (NON_SURFACED_VENUE_PARENT) — Upper/Lower Lot are sub-areas of the single ush.ush park, so their children reparent onto ush.ush. CityWalk (ush.cw / uor.cw) children are dropped (CityWalk is a dining/shopping district, not a park on the wiki).
  2. Drop event-variant aliases (isEventVariantAlias) — a place with is_event=true whose social_sharing_link?id= points at a different canonical place_id is a per-language / operational duplicate: USH "Studio Tour - Mandarin/Spanish" and "Studio Tour Last Tram". Genuine event entities link to themselves (Bowser Jr. Challenge) and are kept.

Validation

  • src/parks/universal/__tests__/places.test.ts: +8 tests (26 total), including the "event entity that links to itself is kept" guard. Full suite: 1522 pass.
  • Live-feed dry run with both changes: 41 new entities resolve and push (was 112 stranded / 0 pushable), 0 unresolved parents, 0 CityWalk, 0 Studio Tour language/last-tram variants.

…iant aliases

Universal Studios Hollywood children whose venue_id is a non-surfaced sub-area
(ush.upper_lot / ush.lower_lot) referenced a parent entity that was never
emitted, so the sync stranded ~73 of them (dining, plus new rides like Fast &
Furious: Hollywood Drift and Bowser Jr. Challenge) in its unresolved-parent
queue every cycle. Reparent those onto the ush.ush park; drop CityWalk
(ush.cw / uor.cw) children, which have no park to hang off.

Also drop per-language / operational variants of a POI: a place flagged
is_event=true whose social_sharing_link points at a DIFFERENT canonical
place_id (USH "Studio Tour - Mandarin/Spanish", "Studio Tour Last Tram").
Genuine event entities link to themselves (Bowser Jr. Challenge) and are kept.

Tests: places.test.ts +8 (reparent, CityWalk exclude, event-variant drop,
Bowser-kept guard); full suite 1522 pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@cubehouse
cubehouse merged commit 5d08aae into main Jul 28, 2026
4 checks passed
@cubehouse
cubehouse deleted the fix/ush-nonsurfaced-venue-parent branch July 28, 2026 13:24
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