← Back to Component Index

Screen Mapping Status

Per-screen mapping of components and domain controls from the Figma mockups. Most app functionality already exists; these are the new designs being built as part of the architectural restructuring. Pass 1 (identification) — every section swept and its content components catalogued from the mocks — is complete. Deep-dives (scaffold spec + domain control + preview) follow per component. A machine-readable node registry is embedded at the bottom.

Figma file: R6hPjBdjSIn6946qTJasUC · ALPAmobileWtablet_20260617 · ALPAMobile2026-06-23 · owEYzHf7FrHRvWC2u82UOl (live, 2026-07-06 gap-audit scoped sync) Sections: 12 phone + 1 tablet tier Screens: 37 phone + 2 tablet templates Updated: 2026-08-12 17:55 ET
DONE validated & documented IDENTIFIED swept from mock (Pass 1) NEW not yet in library TO DO deep-dive pending

Consolidated Gaps & Findings

Rolled up across all analyzed screen sets. Most of the app is already data-ready — the actionable backend list is short. Detail in each set's *-screen-data-gap.html report.

Real backend gaps

GapWhereNoteStatus (2026-06-24)
UserInfo.RankWelcome / Pilot CardNullable string — "Captain", "First Officer", etc. Blocks greeting line.In progress — backend team
MenuItem.DescriptionCardText / card-mdNullable string on MenuItem. Backward-compatible field addition.In progress — backend team
Favorites / bookmarksMEC (card-btn · card-md · media card-lg) · recurs elsewhereCross-control: member-scoped toggle + read keyed on (itemType, itemId). Do not pre-design mobile contract — wire to API client shape when backend delivers.Pending API client delivery

Out of mobile scope (web application)

ItemWhereNote
Submit a Pilot Data Request (PDR)Member ResourcesWeb-app form accidentally surfaced in the mobile mock — remove/hide on mobile. No mobile endpoint.
Submit Meeting ReportAdvocacyLinks out to an online web form — no in-app submission.

Open confirms (small)

Status by screen set

SetOutcomeBackend gap?
Homeanalyzed — UserInfo · DocumentItem · MenuItemyes — the 3 Required API Changes (Rank · Description · Favorites)
MECfavorites · card-md Descriptionyes
KCMdata-complete (KCMAirlineItem / KCMAirportItem)no
Jumpseat Flight Finderdata-complete (Flight/Leg · FlightSearch · policies)no
FTDTdata + computation complete (DutyPeriod + client calculators)no
Member Resourcesnav mapped; PDR web-scopedno (PDR out of scope)
Notificationsdata-complete (NotificationCenterMessage + subscriptions)no
Commsdata-complete (PACMember · CallToAction · DocumentItem)no
Searchclient-side over loaded datano
FAQ / Did You Knownew API endpoint requiredABANDONED (2026-06-24): requirement droppedfavorites (pending API client delivery)

Bottom line: favorites is the one cross-cutting backend item to build; two forms are web-scoped; the rest are small confirms. Everything else is presentation/scaffold work — the recurring high-leverage controls being Master Form Field, flight card, Duty Period Card, card-notification/listy, and progress bar & labels.

Component Inventory (from the mocks)

Distinct content / data components found across the app, with usage count, the scaffold they map to, and deep-dive status. App chrome (topNav, navBar-bottom, nav controls, template, icons, keyboard) is excluded.

Figma componentUsesScaffold / controlDomain control(s)Status
card-lg5Card / CardHeroPilot Card · Document HeroDONE
card-md8CardTextMenu TextDONE
listy card generic6ListDid You Know ListDONE
card-sm19CardSmall— (lists: KCM, Comms, Resources)TO DO
card-btn · button pill13Button— (scaffold exists)TO DO
Toggle - SwitchToggle Switch NEW— (bare on/off atom composed by toggle-settings)IDENTIFIED
horizontal scrolling feed4Carousel— (Home / MEC feeds)TO DO
Master Form Field85Form Field NEW— (search/forms everywhere)TO DO
flight card-og · flight card-recent searches · flight card-saved flight · flight card-saved searches · flight card-TABLET10+Flight Card NEWOne Flight Card domain control, multiple variants (D15). Base/phone: flight card-og 353×111 (renamed from flight segment card). Tablet tier: D12.IDENTIFIED
card-button (ButtonCard)4Button Card NEWContent card + CTA button. 2 variants (Default/Variant2). Instances: My MEC · Jump Seat · Committees · PAC. (D14)IDENTIFIED
card-notification7Notification Card NEWInternal Comms · AdvocacyTO DO
notification card flight status3Flight Status Notification NEWNotifications. Component set 5054:13776 (Default 5054:13775 · open 5054:13777 · comms 5056:13824) on notifications-ff 5060:14989 / notifications-comms 5060:15039. Implemented 2026-08-12 as FlightNotificationCard.razor + CommsNotificationCard.razor (D22, shared alpa-fsnc-* CSS), validated live.DONE
card-duty period-alt6Duty Period Card NEWFTDT duty periods. 3 variants: Default (345×237) · Variant2/expanded (345×1051) · delete-demo (swipe). Master node 4617:13876. DQ-11 open (embedded flight rows).TO DO
flight detail flight info6+Flight Leg Detail NEWDeparture/arrival info panel used in FTDT expanded duty period + Flight Finder expanded flight card. 297×154 px. Symbol node 4325:6399. Fields: DirectionLabel · StatusBadge (incl. delay duration) · Airport · Time · Gate · FlightNumber · AircraftModel · ActionLinks (KCM, Jumpseat Policy) · UpdatedTimestamp. DQ-10 open.TO DO
toggle-settings9Settings Toggle NEW— (settings)TO DO
tab group6Tab / Segmented (≈ Button Group?)TO DO
progress bar & labels · btn-flight finder interior nav19Progress / Stepper NEW— (FTDT / Flight Finder flow)TO DO
check · checklist · radio button20Form selection controls NEW— (filters)TO DO
flight finder filter and sort2 (duplicate node, D41)Flight Finder Filter Sort NEWFlight Finder — filter/sort modal (Apply/Clear · check + radio controls). Likely the live-file successor to overlay-flight finder filter below.IDENTIFIED
expander-flight finder-advanced search1Flight Finder Advanced Search NEWFlight Finder search — composes the Expander primitive; expanded content confirmed 2026-07-02 (D44).IDENTIFIED
banner1Promo Banner NEWDismissible promo/announcement banner (sample: UPA27 survey). Domain source TBD (D43).IDENTIFIED
search secondary buttons1Search Secondary Button (scaffold/atom)Search/JSFF secondary-action chip (e.g. "Recent"). Reclassified from provisional domain-control (D42).IDENTIFIED

Out-of-scope note: the Submit a Pilot Data Request (PDR) form (4870:10865, Member Resources) is scoped to the web application and was accidentally surfaced in the mobile mock — it is not a mobile component or data gap and should be removed/hidden on mobile. See membership-screen-data-gap.html.

Outlier note: the Log In screen is the app's unauthenticated entry point — it sits outside the authenticated screen set and is not modeled in the screen array above. Its analysis is data-complete (credential form → JWT auth endpoint; open work is presentation/interactivity). See login-screen-data-gap.html. Its "Forgot Member Number" link (button link, node 5251:15088) was gap-audited 2026-07-06 and resolved not-catalogued (D49).

2026-07-06 gap-sync note: flight card-saved & recent searches live node confirmed as 4450:9884 (D48, confirms D21); button pill live node confirmed as 4245:5754 (D46, same already-adopted Button (Pill) master); Toggle - Switch (node 4128:7733) added as a new scaffold/atom row above (D47).

Section Tally

App sectionScreensContent components in the mockStatus
Home1 · 4099:5229Welcome/Pilot · card-lg · card-sm · horizontal scrolling feed · Primary button (no card-md/listy)2 DONE · Carousel/CardSmall/Button
MEC1 · 4684:7914card-md×8 · card-lg×4 · card-sm×4 · horizontal scrolling feed×4 · card-btnIDENTIFIED
KCM4 · 4562:7572card-sm · check (filters) · Master Form FieldIDENTIFIED
Airline Policies4 · 4713:25321Master Form Field×10 (search + list)IDENTIFIED
Internal Comms2 · 4565:9260card-sm×6 · card-notification×3IDENTIFIED
Member Resources2 · 4870:10671card-sm×4 · Master Form Field · toggle-settingsIDENTIFIED
Advocacy1 · 4877:11274card-notification×4IDENTIFIED
Favorites2 · 5287:15227card-lg · card-sm · card-btn · Master Form FieldIDENTIFIED
FTDT8 · 4535:14038card-duty period-alt×3 · progress bar & labels · btn-flight finder interior nav · Master Form FieldIDENTIFIED
Notifications5 · 5060:14989notification card flight status · listy card generic×6 · toggle-settings×7 · tab group (segmented: Flight Finder | Comms) · button pill · overlay-notification filters (modal sheet)IDENTIFIED
Flight Finder6 · 4713:25117Flight Card domain control (variants: base · recent searches · saved flight · saved searches · swipe) · Master Form Field · button pill · tab group · overlay-flight finder filter (modal sheet)IDENTIFIED
Tablet (deferred-responsive tier · D12)2 templates · 5455:794 · 5419:11232template-tablet (generic slot) · template-tablet - home · navBar-bottom-tablet · topNav-tablet · flight card-TABLETDEFERRED
Search1 · 4951:11891Master Form Field×11IDENTIFIED

Reference collages (not screens): Components 4020:3422 · components ftdt 4543:5876. Full per-screen node IDs are in the embedded registry below.

2026-06-17 Revision — ALPAmobileWtablet

The ALPAmobileWtablet_20260617 export (exported 2026-06-16) introduces four screen-architecture changes. Decisions D12–D15 are all adopted; see naming-decisions-record.html for rationale.

Flight Card family — one domain control, five Figma masters (D15)

The 2026-06-17 file restructures all flight card masters under a single Flight Card domain control. flight card-og (5452:679, 353×111) is confirmed as the renamed flight segment card — identical dimensions and styling, adds a swipe variant. The full variant set:

Figma masterNodeVariant / screen contextStates
flight card-og5452:679Base / phone — Flight Finder results, Saved Flights. Replaces flight segment card.Default (collapsed 353×111) · Expanded (detail panel) · Swipe
flight card-recent searches4441:398Recent Searches list (Flight Finder)Default · Swipe
flight card-saved flightSaved Flights list (JSFF)Default · Swipe
flight card-saved searchesSaved Searches list (JSFF)Default (collapsed) · Expanded · Swipe
flight card-TABLET5500:44Tablet tier (D12 — deferred)Default · Expanded · Swipe · Variant4 · Variant5 (map by appearance)

All five map to one Flight Card entry in domain-controls.html. Implementation is one domain control with a Variant discriminator. Swipe-to-reveal is a shared interaction convention across the flight card family and the saved-searches cards.

Notifications screen — two-tab segmented layout

The Notifications screen uses a two-tab segmented control (tab group) as its primary navigation, splitting the feed into:

The card-notification component serves both tabs — the Comms variant is a content/style difference, not a separate component. The overlay-notification filters frame (modal sheet) applies filter options to whichever tab is active. Filter state is tab-scoped.

Confirm open: mark-as-read mechanism · whether the Flight Finder tab feeds from the same NotificationCenterMessage type or a distinct flight-status message type.

Overlay pattern — modal sheets, not routes

Three frames are explicitly annotated as overlays in the 2026-06-17 file. Designer annotation verbatim:

Frames prefixed overlay- are modal sheets layered over a base screen (filter / sort / notification-filter), shown on invocation and dismissed back to the screen beneath. Build as overlays, not separate routes. Applies to all overlay- frames (flight finder filter, notification filters, KCM filter).
Figma frameNodeTriggers fromBuild as
overlay-flight finder filter0x44de70 (binary)Flight Finder results — filter/sort actionModal sheet over Flight Finder results screen. Contains check/radio button form controls. 2026-07-02: likely the live-file successor is flight finder filter and sort (node 4450:11374, D41) — same Apply/Clear CTAs and check/radio controls; not confirmed identical, but the pattern match is strong.
overlay-kcm filter0x3a22a1 (binary)KCM Airlines/Airports — filter actionModal sheet over KCM screen. Contains filter form controls.
overlay-notification filters0x60d6eb (binary)Notifications screen — filter action (both tabs)Modal sheet over Notifications screen. Tab-scoped filter state.

These are screen-architecture notes, not new scaffold components. No additions to the component library. In MAUI, implement as Shell modal pages or Popup pattern — not pushed navigation routes.

Tablet screens — deferred-responsive tier (D12)

Two tablet-specific templates in the 2026-06-17 file. Designer annotation verbatim: "Tablet — adapted, not stretched. A considered tablet treatment, not the phone scaled up: dedicated type mode, purpose-built navs, and increased margins/padding. Tablet components live in the components-tablet section."

Figma frameNodeContainsStatus
template-tablet5455:794Generic slot layout: slot-main feed + navBar-bottom-tablet + topNav-tablet. Screenshot reference: 2026-05-27.Deferred (D12)
template-tablet - home5419:11232Home screen layout on tablet. Screenshot reference: 2026-05-27. Also references FTDT - TABLET (5419:11231) as sibling.Deferred (D12)

Tablet screens are catalogued here for completeness but are out of scope until the responsive layout system is defined (post-#2087). Do not add tablet screens to the phone navigation tree or scaffold ViewModel hierarchy. When implemented, tablet screens reuse the same ViewModels as phone screens — distinguished by layout context, not subclassing (D12).

Deep Dives

Home — data-gap deep dive ANALYZED

Screen 4099:5229 (393×852). The scrollable main-feed slot stacks, in order (from the Figma design context):

  1. Welcome card — "Welcome Captain Johnson" / "View Contract" + chevron → Pilot Card
  2. Carousel "UAL MEC · View My MEC" — horizontally-scrolling card-lg content cards
  3. Emergency Hotline — Primary button + phone icon
  4. Small-card row — card-sm tiles (DART, …)
  5. Carousel "View All" — card-lg cards
  6. Small cards — Flight Pay Loss · My Payments · Infor Expense Management
  7. Content card "Hotel Request" — full-width card-lg
  8. Small cards — Meeting Request · MPS
  9. Carousel "Feed · View All" — card-lg (Press Release)

Chrome (not library): topNav (avatar · favorites · notifications · search · hamburger) · status bar · navBar-bottom (Home · Jumpseat · KCM · FTDT · My MEC). Every card carries a favorite/i-heart in Figma — rendered per D31 (2026-06-26).

Home elementFigmaScaffoldDomain control / actionStatus
Welcome cardcard-lg chevron 4033:1436CardPilot CardDONE
Content cards (carousels + Hotel Request)card-lgCardHeroDocument HeroDONE
Carousel sections (×3, "View All" header)horizontal scrolling feedCarouselFeed (docs / press releases)TO BUILD
Small-card tiles (DART · Flight Pay Loss · My Payments · Infor Expense · Meeting Request · MPS)card-smCardSmallResource / nav links (MenuItem)TO BUILD
Emergency HotlinePrimary button + i-phoneButtontel: emergency actionTO BIND
Section headers ("UAL MEC", "Feed", "View All")feed headerSection titletitle + View-All linkTO BUILD

Correction from the deep dive: Home does not use card-md (Menu Text) or listy (Did You Know List) — those live on MEC and "Did you know". Home's content is card-lg (done as Pilot Card + Document Hero). The remaining pieces are now documented as domain controlsHome Feed Carousel · Resource Tile (CardSmall) · Emergency Hotline — code build pending.

Data-gap analysis — complete. Mapped to UserInfo (name) · DocumentItem via GetDocuments (card-lg feeds · View Contract · Hotel Request) · MenuItem (card-sm tiles · Emergency via SpecialCode). Open backend items are exactly the 3 Required API Changes — Rank (blocking) · Description (minor) · Favorites (cross-control). The DONE / TO-BUILD statuses in the table above are build tasks, not analysis gaps. Report: home-screen-data-gap.html · full detail in backend report §1–7.

Flight Finder IDENTIFIED

Results mock 4713:25168 repeats a flight card (353×111): origin/destination + times (DEN 12:00 → MIA 16:19), per-leg carriers (DL 302 / AA 1753 / AA 1186), layover chips, date, total duration / Multileg. Recent/Saved Searches use flight card-recent searches and flight card-saved searches; Saved Flights use flight card-saved flight.

2026-06-17 update (D15): all flight card variants consolidate into one Flight Card domain control — see the 2026-06-17 Revision section above. The "Search Result Card" split is retired; all variants are modelled as FlightCard with a Variant discriminator. Swipe-to-reveal is shared across the family.

MEC — data-gap deep dive ANALYZED

Reuses the Home controls and adds Secondary button, card-btn (3-up icon tiles) and confirms card-md (text content card) data. Full report: mec-screen-data-gap.html.

New data gaps surfaced: (1) Favorite / bookmark — heart on card-btn, card-md and the media card-lg; no API today (heart shown per D31, reverses D7 — MEC shows it across three controls). (2) card-md description — re-confirms the Description gap on the content item. Note: the card-md "new" count badge is client-side (local last-seen diff'd against the API), not a backend gap — API just needs stable item IDs.

KCM — data-gap deep dive ANALYZED

5 screens (home · Airlines · Airports/"Airline Policies" · Policies search · Filter overlay). Full report: kcm-screen-data-gap.html.

Data-complete — no backend gaps. Airlines map 1:1 to KCMAirlineItem { airlineName, pilots, attendants } (getkcmairlines); Airports to KCMAirportItem { airportName, airportCode, checkinNotes, mapUrl } (getkcmairports). Filter/search/sort are client-side. Confirm (×3): Requirements/Usage Procedures content source · Airports "NOTICE" source · eligibility-flag semantics. Presentation backlog: Master Form Field (+ check / radio / tab group / Underline Button) scaffolds.

Jumpseat Flight Finder — data-gap deep dive ANALYZED

9 nodes (search · results · recent · saved searches · saved flights · airline policies). Full report: jsff-screen-data-gap.html.

Data-complete — no backend gaps. Search → FlightSearchAsyncFlightSearchResponse (Flight/Leg); airports → GetFlightSearchAirportsAsync (AirportLocation); detail → FindFlightInfoAsync; policies → GetAirlineJumpseatPoliciesAsync (PolicyViewModel) / GetJumpseatAirlinesAsync. The flight card (new marquee scaffold, 3 variants) binds Flight/Leg (codes · times · carriers · layovers · duration · KCM-per-leg). Confirm: saved/recent persistence (local vs sync) · flight-status notification subscribe API (saved-flight bell) · advanced-search field coverage. Client-side: saved/recent storage, sort/filter.

FTDT — data-gap deep dive ANALYZED

8 nodes (dashboard · op-type select · duty periods · archived · add unaugmented/segment/rest/note). Full report: ftdt-screen-data-gap.html.

Data & computation complete — no backend gaps. Mature local-first feature: DutyPeriod CRUD+sync (Create/Update/SoftDeleteDutyPeriodAsync, GetDutyPeriodsUpdatedAtAsyncDutyPeriodExpanded, FTDTDataBase/FTDTDataSyncHelper); op-type via DPOperationType (US + Canada). Max Duty Period / Ends / cumulative Flight & Duty-hour bars are all computed client-side (FAR-117 / Canadian rest calculators, CalculatorRest_CAN). Regulatory limit rules are all client-side (resolved — no backend rule config). Confirm: sub-entity collections (segments/rest/notes) · calc-input persistence. Presentation backlog: Duty Period Card · progress bar & labels · Master Form Field · toggle-settings.

FTDT component structure — 2026-06-22 exploration

Live Figma exploration of FTDT screens (via get_metadata + get_screenshot on nodes 4535:14038, 4544:5877, 4617:13876, 4325:6399, 4555:6566) confirmed the following component structure:

Figma nodeNameDimensionsRoleScaffold candidate
4535:14038FTDT (dashboard)393×852Cumulative Limitations tab — Flight Hours + Duty Period Hours progress bars. "ADD DUTY PERIOD" button.progress bar & labels (existing TODO)
4544:5877FTDT - Duty Periods393×852Duty period list. 3× card-duty period-alt. Third card shows swipe-to-reveal red delete strip.card-duty period-alt (Duty Period Card)
4617:13876card-duty period-alt master385×16133-variant component frame. Default=345×237 (collapsed: date, max duty, ends, duty, manage button). Variant2=345×1051 (expanded: + EDIT, Flight Segments sub-list, ADD FLIGHT SEGMENT, Rest Duration, EDIT REST OPPORTUNITY, Notes, ADD NOTE, CONCLUDE button). Delete-demo=345×237 (swipe-right reveals red delete icon).DutyPeriodCardViewModel (new · DQ-11)
4325:6399flight detail flight info297×154Departure/arrival info panel. Shows: direction label, StatusBadge with delay duration ("Delayed 34m"), Airport + time, Gate, FlightNumber, AircraftModel, KCM link, Jumpseat Policy link, Updated timestamp.FlightLegInfoViewModel (new · DQ-10)
4555:6566FTDT-add flight segment393×852Form screen: Equipment, Flight Number, Depart, Arrival, Date, Block Out, Block In, Flight Time. Confirms data fields needed for DutyPeriodExpanded segment sub-entities.Master Form Field (existing TODO)

Open reusability questions from this exploration:

DQ-10flight detail flight info: shares 5 fields with FlightSegmentCardViewModel but adds 4 unique fields (Gate, ActionLinks, DirectionLabel, UpdatedTimestamp) and drops 3 (Destination, ArrivalTime, Duration). One-directional vs paired-route layout. Likely a new scaffold component, but depends on data source for Gate/ActionLinks.

DQ-11 — Duty Period embedded flight rows: compact ~178×150 px instances inside expanded duty period card. 3-line format (date · route · detail). Bidirectional (Origin AND Destination). 5 fields, no StatusBadge. Likely internal to DutyPeriodCardViewModel rather than a separate scaffold — see DQ-11 for options.

Member Resources — data-gap deep dive ANALYZED

2 nodes (resource nav · Submit a Pilot Data Request form). Full report: membership-screen-data-gap.html.

Resource list = MenuItem nav (In Case of Emergency · International Directory · Membership Card · Orange Card → existing pages). The PDR form pre-fills from Member (Name/Position/ALPA #). Out of mobile scope: the PDR submission is scoped to the web application and was accidentally surfaced in the mobile mock — no mobile endpoint; remove/hide on mobile. Not a mobile backend gap. Confirm: Employee-Number prefill source (not on Member).

Notifications — data-gap deep dive ANALYZED

Notifications list + settings (distinct from Comms). Full report: notifications-screen-data-gap.html.

Data-complete. COMMS list → GetNotificationListAsyncNotificationCenterMessage { Title, Message, SendDateTime, HasNotBeenRead, ContentType, DocType, FileID, Destination, RequiresLogin }; settings → GetAllSubscriptionsForUserAsyncMobileAudienceSubscription + ToggleSubscriptionAsync. Confirm: Flight-Finder-tab flight-status feed source (↔ JSFF saved-flight subscription) · mark-as-read mechanism. 2026-06-17 update: screen is segmented into two tabs (Flight Finder | Comms) driven by a tab group; overlay-notification filters is a modal sheet (not a route); card-notification serves both tabs. See 2026-06-17 Revision section above. Presentation: Notification Card (+ flight-status variant), segmented tab group, toggle-settings, overlay modal.

Comms — data-gap deep dive ANALYZED

Advocacy + Internal Comms (ALP Mag) — document-list screens, distinct from Notifications. Full report: comms-screen-data-gap.html.

Data-complete. Advocacy → GetPACMemberInfoAsyncPACMember { ContributionYTD, ClubStatus, AllPACContributions, pacDonationPageURL, pacMembershipInfoURL } + GetCallToActionLinksAsyncCallToAction; Internal Comms → GetDocumentListAsyncDocumentItem. External: "Submit Meeting Report" links to an online web form (no in-app submission). Confirm: CallToAction completion status · comms article date/summary fields.

Search — data-gap deep dive ANALYZED

Global search (typeahead). Full report: search-screen-data-gap.html.

Client-side — no backend gap. No global-search endpoint/VM in the codebase; search runs over already-loaded data (DocumentItem list · MenuItem · KCM airlines · content), results reuse existing per-entity navigation. Confirm: the searched corpus, and whether a server search is needed if the corpus outgrows what's on device.

FAQ / Did You Know — data-gap deep dive ANALYZED ABANDONED

"Did You Know?" list (listy). Full report: faq-screen-data-gap.html.

2026-06-24: This feature has been abandoned. The DYK/FAQ requirement has been dropped; no endpoint will be built and no mobile implementation is planned. The DidYouKnowListFactory scaffold spec and ListViewModel domain control remain in the library as a generic list, but the DYK-specific domain control is removed from scope.

Favorites — data-gap deep dive ANALYZED

2 nodes (rich "Favorites" view · condensed list). Full report: favorites-screen-data-gap.html.

Pending API client delivery (2026-06-24). The screens render the member's favorited items by their native control — card-lg (document) · card-sm (nav tile) · card-btn (button) — plus a condensed » list. Backend team is building the Favorites capability; do not pre-design the mobile contract. Wire FavoritesService to the shape and calls delivered in the backend API client. No favorites endpoint / service / model exists today.

Node Registry (embedded)

Machine-readable lookup of the Figma nodes and per-section components. Extend as deep-dives complete.