Schema for the data.json file used by the SmartCompanion Audioguide App. This file defines all content for an audioguide: assets (images and audio files), stations (points of interest), languages (available translations), texts (UI translations), and optionally tours, pins, and server configuration.
No Additional PropertiesAn arbitrary checksum string used to detect data changes and trigger cache invalidation. Update this value whenever the data changes.
List of all media assets (images, audio files, videos) referenced by stations and tours. Each asset must have a unique id.
Must contain a minimum of 1 items
A media asset (image, audio file, video, or other downloadable resource). Image assets are typically language-independent. Audio/video assets include a 'language' field to associate them with a specific language.
No Additional PropertiesUnique identifier for this asset. Referenced by stations in their 'images' and 'audios' arrays, and by tours in their 'images' array.
Language code (e.g. 'de', 'en', 'es'). Used for audio/video assets to associate them with a language. Omitted for image assets since images are typically shared across languages.
Must match regular expression:^[a-z]{2,3}$
Optional title of the asset, e.g. the title of an audio track.
Optional duration in seconds of an audio or video asset.
Value must be greater or equal to 0
The filename of the asset including extension, without a path. Images are typically .png or .jpg, audio files are typically .mp3.
The full URL where this asset is hosted and can be downloaded from.
List of audioguide stations (points of interest). For multilingual projects, each station is repeated per language — sharing the same 'id' and 'number' but with different 'language', 'title', 'subtitle', 'description', and 'audios' values. Images are typically shared across languages.
Must contain a minimum of 1 items
An audioguide station representing a specific point of interest within a tour or guide. In multilingual projects, each logical station appears multiple times — once per language — sharing the same 'id' and 'number' but with language-specific content. Images are typically shared across all language variants of a station.
No Additional PropertiesUnique identifier for this station, shared across language variants of the same station (e.g. 's1' for station 1 in all languages).
Language code (e.g. 'de', 'en', 'es'). Indicates which language this station variant is in.
Must match regular expression:^[a-z]{2,3}$
The title/name of the station in the specified language.
An optional subtitle for the station in the specified language.
Display number for the station (e.g. '1', '2', '3'). Used for identification of a station by visitors.
An optional textual description of the station in the specified language.
Optional latitude coordinate of the station, used to display the station on a map.
Value must be greater or equal to -90 and lesser or equal to 90
Optional longitude coordinate of the station, used to display the station on a map.
Value must be greater or equal to -180 and lesser or equal to 180
Array of asset IDs referencing image files for this station. IDs must match entries in the top-level 'assets' array. Images are typically shared across language variants.
Must contain a minimum of 1 items
Optional array of asset IDs referencing audio files for this station. IDs must match entries in the top-level 'assets' array.
No Additional ItemsList of available languages for the audioguide. The first language in the list is used as the default.
Must contain a minimum of 1 items
A language available in the audioguide. Displayed in the language selection screen.
No Additional PropertiesThe display name of the language, written in that language itself (e.g. 'Deutsch', 'English', 'Español', 'Italiano').
Language code (e.g. 'de', 'en', 'es', 'it').
Must match regular expression:^[a-z]{2,3}$
UI translation strings for the app interface. Each text entry is a key-value pair scoped to a specific language. All keys should be provided for every language listed in the 'languages' array.
Must contain a minimum of 1 items
A UI translation string. The app uses keys to look up interface text in the selected language. Keys are arbitrary strings, e.g. 'menu-overview', 'menu-selection', 'menu-language', 'no-internet', 'try-again', 'enter-pin', 'pin-error'.
No Additional PropertiesLanguage code (e.g. 'de', 'en', 'es', 'it'). Indicates which language this translation belongs to.
Must match regular expression:^[a-z]{2,3}$
The translation key identifier used inside the app.
The translated text for this key in the specified language.
Optional list of guided tours. Tours group stations into a specific order to give visitors a structured, guided experience. For multilingual projects, each tour is repeated per language — sharing the same 'id' but with different 'language', 'title', and 'description' values.
No Additional ItemsA guided tour that groups stations into a specific order to provide visitors with a structured, informative experience. In multilingual projects, each tour is repeated per language — sharing the same 'id' but with language-specific 'title' and 'description' values.
No Additional PropertiesUnique identifier for this tour, shared across language variants (e.g. 'tour1').
The title of the tour in the specified language.
Language code indicating which language this tour variant is in.
Must match regular expression:^[a-z]{2,3}$
Whether this tour is the default tour. Exactly one tour should be marked as default.
Optional tour number as an identifier for visitors.
Optional description of the tour in the specified language.
An ordered array of station numbers (as strings) listing all stations in this tour in the intended visiting order.
Must contain a minimum of 1 items
Array of asset IDs referencing images for this tour. IDs must match entries in the top-level 'assets' array.
No Additional ItemsOptional array of four-digit PIN codes. Provides a simple access control mechanism — e.g. a PIN issued upon payment. If present, visitors must enter a valid PIN to access the audioguide.
No Additional ItemsA four-digit PIN code.
Must match regular expression:^[0-9]{4}$
Optional array of IP addresses identifying local servers for downloading data within an internal WiFi network. Enhances download speed for visitors and reduces outbound internet traffic.
No Additional ItemsAn IP address of a local server.