// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
library fuchsia.intl.merge;

using fuchsia.intl;
using fuchsia.settings;

/// Raw inputs for producing a `fuchsia.intl.Profile`. This is only used
/// internally in `IntlPropertyProviderImpl`, for keeping track of incoming
/// settings before assembling a `fuchsia.intl.Profile`.
type Data = table {
    // Just language, region, script, and variant; no extensions.
    1: language_tags vector<fuchsia.intl.LocaleId>:10;
    2: time_zone_ids vector<fuchsia.intl.TimeZoneId>:10;
    3: calendar_ids vector<fuchsia.intl.CalendarId>:10;
    4: temperature_unit fuchsia.intl.TemperatureUnit;
    // If set, the hour cycle is taken from this setting, and is otherwise defaulted from the
    // locale.
    5: hour_cycle fuchsia.settings.HourCycle;
};
