Skip to content

Documentation / @expofp/schema / Config

Interface: Config ​

Extends ​

Properties ​

allow3dView ​

ts
allow3dView: boolean;

Inherited from ​

ts
z.infer.allow3dView

alwaysShowSidebar ​

ts
alwaysShowSidebar: boolean;

Inherited from ​

ts
z.infer.alwaysShowSidebar

autoTrackingGps ​

ts
autoTrackingGps: boolean;

Inherited from ​

ts
z.infer.autoTrackingGps

booths ​

ts
booths: (
  | {
[key: string]: unknown;
  availColor?: string;
  buyUrl?: string;
  exhibitors?: number[];
  externalId?: string;
  holdColor?: string;
  id: number;
  labelColor?: string;
  meta?: Record<string, string>;
  name: string;
  poiTypeId?: number;
  price?: string;
  reserveUrl?: string;
  size?: string;
  soldColor?: string;
  status?: "onhold" | "reserved";
  title?: string;
  type?: string;
}
  | {
[key: string]: unknown;
  color?: string;
  description?: string;
  exhibitors?: number[];
  externalId?: string;
  id: number;
  meta?: Record<string, string>;
  name: string;
  poiTypeId?: number;
  special: true;
  title?: string;
})[];

Inherited from ​

ts
z.infer.booths

boothTerm ​

ts
boothTerm: string;

Inherited from ​

ts
z.infer.boothTerm

busRoutes? ​

ts
optional busRoutes?: boolean;

Enable live bus/transport routing on the floor plan.

Disabled by default: most plans have no transit routes, and probing for them issues an extra HTTP request on every load. Set to true only for plans that actually provide bus routes.

Inherited from ​

ts
z.infer.busRoutes

camera ​

ts
camera: object = CameraSchema;

The initial camera, applied once at boot (an empty object means "don't move"). The URL form is ?camera[x]=…; the runtime counterpart is FloorPlan.setCamera / the setCamera intent.

bearing? ​

ts
optional bearing?: number;

Map rotation in degrees (0–360).

floor? ​

ts
optional floor?: string;

Floor name to activate.

lat? ​

ts
optional lat?: number;

Center, GPS latitude (paired with lng).

lng? ​

ts
optional lng?: number;

Center, GPS longitude (paired with lat).

pitchDegrees? ​

ts
optional pitchDegrees?: number;

Camera tilt back from top down, in degrees.

pitchTime? ​

ts
optional pitchTime?: number;

Tilt animation duration in milliseconds.

x? ​

ts
optional x?: number;

Center, floor-plan projected coordinates (paired with y).

y? ​

ts
optional y?: number;

Center, floor-plan projected coordinates (paired with x).

zoomTime? ​

ts
optional zoomTime?: number;

Camera movement animation duration in milliseconds.

Inherited from ​

ts
z.infer.camera

categories ​

ts
categories: object[];

Index Signature ​

ts
[key: string]: unknown

id ​

ts
id: number;

name ​

ts
name: string;

sponsorship? ​

ts
optional sponsorship?: boolean;

Inherited from ​

ts
z.infer.categories

ts
consent: "ask" | "granted" | "denied" = ConsentSchema;

Inherited from ​

ts
z.infer.consent

customCss ​

ts
customCss: string;

Inherited from ​

ts
z.infer.customCss

customCssFonts ​

ts
customCssFonts: object[];

Index Signature ​

ts
[key: string]: unknown

style? ​

ts
optional style?: string;

url? ​

ts
optional url?: string;

weight? ​

ts
optional weight?: string | number;

Inherited from ​

ts
z.infer.customCssFonts

customKioskQrCodeUrl ​

ts
customKioskQrCodeUrl: string;

Inherited from ​

ts
z.infer.customKioskQrCodeUrl

customSetKiosk? ​

ts
optional customSetKiosk?: string;

Custom setkiosk phrase.

Inherited from ​

ts
z.infer.customSetKiosk

debugMode ​

ts
debugMode: boolean;

Debug mode: verbose logs, the in-map debug overlay, dev-leniency in error paths.

Inherited from ​

ts
z.infer.debugMode

debugPattern ​

ts
debugPattern: string;

Inherited from ​

ts
z.infer.debugPattern

dimensionless ​

ts
dimensionless: boolean;

Inherited from ​

ts
z.infer.dimensionless

disableBookmarked ​

ts
disableBookmarked: boolean;

Disable adding entities to bookmarks.

Inherited from ​

ts
z.infer.disableBookmarked

disableFeatured ​

ts
disableFeatured: boolean;

Drop the featured flag from every exhibitor (no featured view).

Inherited from ​

ts
z.infer.disableFeatured

disableGps ​

ts
disableGps: boolean;

Start with GPS tracking off.

Inherited from ​

ts
z.infer.disableGps

disableRuntimeAlerts ​

ts
disableRuntimeAlerts: boolean;

Inherited from ​

ts
z.infer.disableRuntimeAlerts

enableExperimentalMaplibre? ​

ts
optional enableExperimentalMaplibre?: boolean;

Enable experimental MapLibre GL JS support.

Inherited from ​

ts
z.infer.enableExperimentalMaplibre

enableExperimentalOutdoorMarkers? ​

ts
optional enableExperimentalOutdoorMarkers?: boolean;

Enable experimental outdoor PoI markers: booths on an Outdoor* layer leave the renderer scene and draw as fixed-size native MapLibre markers with clustering.

Unset or false disables the feature outright — Outdoor layers then render like any other layer, exactly as they did before it existed. Unlike enableExperimentalMaplibre this is NOT tri-state: no drawing field opts a plan in, so there is nothing for undefined to defer to.

Inherited from ​

ts
z.infer.enableExperimentalOutdoorMarkers

enableIPS ​

ts
enableIPS: boolean;

Inherited from ​

ts
z.infer.enableIPS

enableRotation ​

ts
enableRotation: boolean;

Inherited from ​

ts
z.infer.enableRotation

endDate ​

ts
endDate: string;

Inherited from ​

ts
z.infer.endDate

events ​

ts
events: object[];

Index Signature ​

ts
[key: string]: unknown

boothId? ​

ts
optional boothId?: number;

description? ​

ts
optional description?: string;

endDate? ​

ts
optional endDate?: string;

exhibitorId? ​

ts
optional exhibitorId?: number;

externalId? ​

ts
optional externalId?: string;

id ​

ts
id: number;
ts
optional link?: string;

logoFile? ​

ts
optional logoFile?: string;

name ​

ts
name: string;

speakers? ​

ts
optional speakers?: object[];
Index Signature ​
ts
[key: string]: unknown

startDate? ​

ts
optional startDate?: string;

tracks? ​

ts
optional tracks?: unknown[];

Inherited from ​

ts
z.infer.events

exhibitors ​

ts
exhibitors: object[];

Index Signature ​

ts
[key: string]: unknown

address? ​

ts
optional address?: string;

address2? ​

ts
optional address2?: string;
ts
optional advertise?: boolean;

categories? ​

ts
optional categories?: number[];

city? ​

ts
optional city?: string;

country? ​

ts
optional country?: string;

description? ​

ts
optional description?: string;

email? ​

ts
optional email?: string;

externalId? ​

ts
optional externalId?: string;

facebook? ​

ts
optional facebook?: string;
ts
optional featured?: boolean;
ts
optional gallery?: string[];

googlePlus? ​

ts
optional googlePlus?: string;

id ​

ts
id: number;

instagram? ​

ts
optional instagram?: string;

leadingImageUrl? ​

ts
optional leadingImageUrl?: string;

linkedin? ​

ts
optional linkedin?: string;
ts
optional logo?: 
  | string
  | {
  smallUrl?: string;
  tinyUrl?: string;
  url: string;
} = ExhibitorLogoSchema;

logoAspectRatio? ​

ts
optional logoAspectRatio?: number;

The logo's width divided by its height.

logoInBooth? ​

ts
optional logoInBooth?: boolean;

Paint the logo inside the exhibitor's booth shape on the drawing.

marketMaterials? ​

ts
optional marketMaterials?: object[];
Index Signature ​
ts
[key: string]: unknown

name ​

ts
name: string;

order? ​

ts
optional order?: number;

phone1? ​

ts
optional phone1?: string;

privateEmail? ​

ts
optional privateEmail?: string;

rebookingNote? ​

ts
optional rebookingNote?: string;

rebookingState? ​

ts
optional rebookingState?: number;

state? ​

ts
optional state?: string;

twitter? ​

ts
optional twitter?: string;

videoUrl? ​

ts
optional videoUrl?: string;

website? ​

ts
optional website?: string;

xing? ​

ts
optional xing?: string;

youtube? ​

ts
optional youtube?: string;

zip? ​

ts
optional zip?: string;

Inherited from ​

ts
z.infer.exhibitors

exhibitorTerm ​

ts
exhibitorTerm: string;

Inherited from ​

ts
z.infer.exhibitorTerm

exhibitorTermPlural ​

ts
exhibitorTermPlural: string;

Inherited from ​

ts
z.infer.exhibitorTermPlural

expo ​

ts
expo: string;

Inherited from ​

ts
z.infer.expo

expoFpAd ​

ts
expoFpAd: boolean;

Inherited from ​

ts
z.infer.expoFpAd

filterButtonsConfig ​

ts
filterButtonsConfig: object = FilterButtonsConfigSchema;

Index Signature ​

ts
[key: string]: unknown

isExplicit? ​

ts
optional isExplicit?: boolean;

searchButtons? ​

ts
optional searchButtons?: object[];
Index Signature ​
ts
[key: string]: unknown

sortType? ​

ts
optional sortType?: "custom" | "alphabetical";

Inherited from ​

ts
z.infer.filterButtonsConfig

filters ​

ts
filters: object = FiltersSchema;

Search filters applied once at boot by the URL filter manager (an empty object applies nothing). Canonical URL form ?filters[categories][0]=food; the legacy ?categories=/?poiType=/?poiTypes=/?exhibitors=true keys keep working — and remain the form the floor plan writes back to the URL as the visitor changes filters.

categories? ​

ts
optional categories?: string[];

Category names to pre-select; opens the category filter panel.

exhibitors? ​

ts
optional exhibitors?: boolean;

true opens the exhibitors list at boot.

poiType? ​

ts
optional poiType?: string;

A single POI type to pre-select; also activates its search filter button.

poiTypes? ​

ts
optional poiTypes?: string[];

POI type names to pre-select (no filter-button activation).

Inherited from ​

ts
z.infer.filters

fpSvgJsRef ​

ts
fpSvgJsRef: 
  | {
  $ref: string;
}
  | null;

fp.svg.js ref (the drawing); null derives <legacyDataUrlBase>fp.svg.js.

Inherited from ​

ts
z.infer.fpSvgJsRef

fpSvgLayerJsRefs ​

ts
fpSvgLayerJsRefs: Record<string, {
  $ref: string;
}>;

Per-layer fp.svg.<layerName>.js refs (by layer name), resolved on demand.

Inherited from ​

ts
z.infer.fpSvgLayerJsRefs

free ​

ts
free: boolean;

Inherited from ​

ts
z.infer.free

ts
gallery: string[];

Inherited from ​

ts
z.infer.gallery

gtag ​

ts
gtag: string;

Inherited from ​

ts
z.infer.gtag

heatmap ​

ts
heatmap: object = HeatmapSchema;

Heatmap mode, engaged once at boot (an empty object — the default — means no heatmap). A non-empty node engages the mode unless enabled is explicitly false, so heatmap: { variant: 'yah' } implies enabled; variant picks the dataset (booths view stats by default, yah for "You are here" QR scans; kiosk: true narrows yah to kiosk positions). Heatmap mode freezes the page URL for the whole session (the legacy contract). The legacy ?heatmap=true&type=yah&subtype=kiosk links keep working as a translation; the access token ?t= stays a separate raw query param, not config.

enabled? ​

ts
optional enabled?: boolean;

Engage the heatmap explicitly; false vetoes an otherwise non-empty node.

kiosk? ​

ts
optional kiosk?: boolean;

Narrow the yah variant to kiosk positions (ignored for booths).

variant? ​

ts
optional variant?: "booths" | "yah";

The dataset shown: booths (the default) — booth/exhibitor view stats; yah — "You are here" QR-code scan counts, with a stripped-down monochrome presentation.

Inherited from ​

ts
z.infer.heatmap

hide3dMapDefault ​

ts
hide3dMapDefault: boolean;

Inherited from ​

ts
z.infer.hide3dMapDefault

hideBookmarks ​

ts
hideBookmarks: boolean;

Inherited from ​

ts
z.infer.hideBookmarks

ts
hideBookmarksLink: boolean;

Inherited from ​

ts
z.infer.hideBookmarksLink

hideBoothBadges? ​

ts
optional hideBoothBadges?: boolean;

Hide booth number badges.

Inherited from ​

ts
z.infer.hideBoothBadges

ts
hideCategoriesLink: boolean;

Inherited from ​

ts
z.infer.hideCategoriesLink

hideDirections ​

ts
hideDirections: boolean;

Inherited from ​

ts
z.infer.hideDirections

ts
hideDownloadPdfLink: boolean;

Inherited from ​

ts
z.infer.hideDownloadPdfLink

ts
hideEventHomeLink: boolean;

Inherited from ​

ts
z.infer.hideEventHomeLink

hideExhibitorBoothNumber ​

ts
hideExhibitorBoothNumber: boolean;

Inherited from ​

ts
z.infer.hideExhibitorBoothNumber

hideExhibitors ​

ts
hideExhibitors: boolean;

Inherited from ​

ts
z.infer.hideExhibitors

ts
hideHeaderLogo: boolean;

Hide the header logo (and the ExpoFP logo).

Inherited from ​

ts
z.infer.hideHeaderLogo

hideLanguage ​

ts
hideLanguage: boolean;

Inherited from ​

ts
z.infer.hideLanguage

ts
hideLanguageLink: boolean;

Inherited from ​

ts
z.infer.hideLanguageLink

hideLogoInBooth ​

ts
hideLogoInBooth: boolean;

Hide exhibitor logos inside booths.

Inherited from ​

ts
z.infer.hideLogoInBooth

hideModeSwitchButton ​

ts
hideModeSwitchButton: boolean;

Inherited from ​

ts
z.infer.hideModeSwitchButton

ts
hideRegisterToAttendLink: boolean;

Inherited from ​

ts
z.infer.hideRegisterToAttendLink

hideShareButton ​

ts
hideShareButton: boolean;

Inherited from ​

ts
z.infer.hideShareButton

hideWayInformation ​

ts
hideWayInformation: boolean;

Inherited from ​

ts
z.infer.hideWayInformation

homeUrl ​

ts
homeUrl: string;

Inherited from ​

ts
z.infer.homeUrl

ignoreQuery ​

ts
ignoreQuery: boolean;

Inherited from ​

ts
z.infer.ignoreQuery

intents ​

ts
intents: (
  | {
  args: [string];
  name: "selectBooth";
}
  | {
  args: [string];
  name: "selectExhibitor";
}
  | {
  args: [string];
  name: "changeLanguage";
}
  | {
  args: [string];
  name: "selectCategory";
}
  | {
  args: [string];
  name: "select";
}
  | {
  args: [
     | "exhibitors"
     | "bookmarks"
     | "visited"
     | "sessions"
     | "speakers"
     | "tours"
    | "language"];
  name: "showList";
}
  | {
  args: [string];
  name: "selectTour";
}
  | {
  args: [{
     from?: string;
     fromBookmarks?: boolean;
     items?: string[];
  }];
  name: "openPlanner";
}
  | {
  args: [];
  name: "startBuildRoute";
}
  | {
  args: [{
     bearing?: number;
     floor?: string;
     lat?: number;
     lng?: number;
     pitchDegrees?: number;
     pitchTime?: number;
     x?: number;
     y?: number;
     zoomTime?: number;
  }];
  name: "setCamera";
}
  | {
  args: [{
     controls?: boolean;
     header?: boolean;
     levels?: boolean;
     overlay?: boolean;
     searchButtons?: boolean;
  }];
  name: "setVisibility";
}
  | {
  args: [string[]];
  name: "selectRoute";
}
  | {
  args: [string[]];
  name: "selectAccessibleRoute";
}
  | {
  args: [string, string[]];
  name: "showPathway";
}
  | {
  args: [{
     angle?: number;
     lat?: number;
     lng?: number;
     x: number;
     y: number;
     z?: string | number;
  }, boolean, number?];
  name: "selectCurrentPosition";
})[];

Inherited from ​

ts
z.infer.intents

isRebooking ​

ts
isRebooking: boolean;

Inherited from ​

ts
z.infer.isRebooking

isTrial ​

ts
isTrial: boolean;

Inherited from ​

ts
z.infer.isTrial

kiosk ​

ts
kiosk: object = KioskSchema;

The kiosk anchor — where a kiosk device stands and how its camera is framed, applied at boot when the device has no locally-saved kiosk (the on-device SetKiosk flow wins; localStorage['kiosk']='0' disables both). Canonical URL form ?kiosk[x]=…, and ?kiosk=1/0 keeps toggling kiosk mode. The legacy kiosk_x/y/z params are a separate, narrower channel: they carry the anchor POSITION to a phone scanning a kiosk's route QR code, and put that phone in no kiosk mode of its own.

heading? ​

ts
optional heading?: number;

Device heading in degrees — rotates the you-are-here marker.

iconSizePercent? ​

ts
optional iconSizePercent?: number;

You-are-here icon size, in percent.

lat? ​

ts
optional lat?: number;

GPS latitude (with lng, an alternative fix to x/y).

lng? ​

ts
optional lng?: number;

GPS longitude.

mapBearingDegrees? ​

ts
optional mapBearingDegrees?: number;

Map bearing at the home framing, degrees (map mode).

mapCenterLat? ​

ts
optional mapCenterLat?: number;

Home framing center latitude (map mode).

mapCenterLng? ​

ts
optional mapCenterLng?: number;

Home framing center longitude (map mode).

mapCenterX? ​

ts
optional mapCenterX?: number;

Home framing center x.

mapCenterY? ​

ts
optional mapCenterY?: number;

Home framing center y.

mapInitialPtScale? ​

ts
optional mapInitialPtScale?: number;

The pt-scale captured when the kiosk was set up (zoom reference).

mapPitch? ​

ts
optional mapPitch?: number;

Map pitch at the home framing, degrees.

mapPitchDegrees? ​

ts
optional mapPitchDegrees?: number;

Map pitch at the home framing, degrees (map mode).

mapPtScale? ​

ts
optional mapPtScale?: number;

The pt-scale of the saved framing.

mapRollDegrees? ​

ts
optional mapRollDegrees?: number;

Map roll at the kiosk's home framing, degrees.

mapZoom? ​

ts
optional mapZoom?: number;

Map zoom level at the home framing (map mode).

uiScale? ​

ts
optional uiScale?: number;

Per-device UI scale preference (the applied range is 0.8–1.4).

x? ​

ts
optional x?: number;

Anchor x in plan coordinates.

y? ​

ts
optional y?: number;

Anchor y in plan coordinates.

z? ​

ts
optional z?: string | number | null;

Floor: the level name (a numeric index is accepted and stringified). Nullable — the on-device SetKiosk flow writes null for a plan with no layers, and that record round-trips through localStorage.

Inherited from ​

ts
z.infer.kiosk

levelTerm ​

ts
levelTerm: string;

Inherited from ​

ts
z.infer.levelTerm

locale ​

ts
locale: string;

Inherited from ​

ts
z.infer.locale

logo ​

ts
logo: string;

Inherited from ​

ts
z.infer.logo

maplibre ​

ts
maplibre: object = MapLibreConfigSchema;

Index Signature ​

ts
[key: string]: unknown

offline? ​

ts
optional offline?: boolean;

The style and everything it references (tiles, sprites, glyphs) are reachable without network — lets the map stay enabled while navigator.onLine is false.

style? ​

ts
optional style?: any;

Inline style object (takes precedence over styleUrl). With no style URL to resolve against, every URL inside it must already be full.

styleUrl? ​

ts
optional styleUrl?: string;

Full, rooted, or relative URL of a MapLibre style document, fetched by MapLibre GL itself. Its internal resources are resolved by the SDK before MapLibre consumes the loaded style.

Inherited from ​

ts
z.infer.maplibre

mobileLocationProvider ​

ts
mobileLocationProvider: string | null;

Indoor-positioning provider for the native SDKs, opaque web-side: <provider>.<version>.<base64url credentials>, e.g. indooratlas.1.SGVsbG8gV29ybGQh. null (the default) means none — not '', so the native bridge sees Kotlin null / Swift nil.

Inherited from ​

ts
z.infer.mobileLocationProvider

monochrome ​

ts
monochrome: boolean;

Render the plan in grayscale.

Inherited from ​

ts
z.infer.monochrome

noFeatured ​

ts
noFeatured: boolean;

Inherited from ​

ts
z.infer.noFeatured

noOverlay ​

ts
noOverlay: boolean;

Inherited from ​

ts
z.infer.noOverlay

offHistory ​

ts
offHistory: boolean;

Inherited from ​

ts
z.infer.offHistory

onlyFeaturedExhibitors ​

ts
onlyFeaturedExhibitors: boolean;

Inherited from ​

ts
z.infer.onlyFeaturedExhibitors

poiTypes ​

ts
poiTypes: object[];

Index Signature ​

ts
[key: string]: unknown

iconUrl? ​

ts
optional iconUrl?: string;

Icon shown for this type; overrides the built-in glyph. A resource like the event logo, and optional like it too: serialization (offline copies, normalized folders) copies the file best-effort and drops the field when it is missing — the built-in glyph is the fallback either way.

id ​

ts
id: number;

name ​

ts
name: string;

parentId? ​

ts
optional parentId?: number;

Inherited from ​

ts
z.infer.poiTypes

previewMode ​

ts
previewMode: boolean;

Inherited from ​

ts
z.infer.previewMode

registerUrl ​

ts
registerUrl: string;

Inherited from ​

ts
z.infer.registerUrl

reserveButtonTerm ​

ts
reserveButtonTerm: string;

Inherited from ​

ts
z.infer.reserveButtonTerm

reserveInstructions ​

ts
reserveInstructions: string;

Inherited from ​

ts
z.infer.reserveInstructions

searchText ​

ts
searchText: string;

Inherited from ​

ts
z.infer.searchText

sendLoginLinkUrl ​

ts
sendLoginLinkUrl: string;

Inherited from ​

ts
z.infer.sendLoginLinkUrl

shortLevelName ​

ts
shortLevelName: boolean;

Inherited from ​

ts
z.infer.shortLevelName

showCategories ​

ts
showCategories: boolean;

Inherited from ​

ts
z.infer.showCategories

showCompaniesAndBooths ​

ts
showCompaniesAndBooths: boolean;

Inherited from ​

ts
z.infer.showCompaniesAndBooths

showDebugButton ​

ts
showDebugButton: boolean;

Inherited from ​

ts
z.infer.showDebugButton

showLevelLabel ​

ts
showLevelLabel: boolean;

Inherited from ​

ts
z.infer.showLevelLabel

showOtherSpaces ​

ts
showOtherSpaces: boolean;

Inherited from ​

ts
z.infer.showOtherSpaces

startDate ​

ts
startDate: string;

Inherited from ​

ts
z.infer.startDate

subtitle ​

ts
subtitle: string;

Inherited from ​

ts
z.infer.subtitle

title ​

ts
title: string;

Inherited from ​

ts
z.infer.title

trackerUrl ​

ts
trackerUrl: string;

Inherited from ​

ts
z.infer.trackerUrl

trialExpiresAt ​

ts
trialExpiresAt: string;

Inherited from ​

ts
z.infer.trialExpiresAt

viewerMode ​

ts
viewerMode: boolean;

Inherited from ​

ts
z.infer.viewerMode

viewOptimizationLevel ​

ts
viewOptimizationLevel: number;

Inherited from ​

ts
z.infer.viewOptimizationLevel

visibility ​

ts
visibility: object = VisibilitySchema;

Visibility of the map chrome, applied once at boot. An empty object leaves the chrome untouched; a non-empty one REBUILDS the set — every element it omits resets to visible — so a URL that hides one element must list every other element it also wants hidden. The URL form is ?visibility[header]=false; the runtime counterpart is FloorPlan.setVisibility / the setVisibility intent.

controls? ​

ts
optional controls?: boolean;

The map controls (zoom buttons, …).

ts
optional header?: boolean;

The header bar — logos and the free/demo badge.

levels? ​

ts
optional levels?: boolean;

The floor selector.

overlay? ​

ts
optional overlay?: boolean;

The overlay panel — search, lists, entity details.

searchButtons? ​

ts
optional searchButtons?: boolean;

The search-filter buttons row. Omitted, it follows overlay; an explicit true keeps the buttons while the overlay is hidden — clicking one opens the overlay on demand (?visibility[overlay]=false&visibility[searchButtons]=true).

Inherited from ​

ts
z.infer.visibility

wfDataJsRef ​

ts
wfDataJsRef: 
  | {
  $ref: string;
}
  | null;

wf.data.js (wayfinding graph) ref; null without legacy data.

Inherited from ​

ts
z.infer.wfDataJsRef