blob: aeea0652860ce72cd7e02ea8a8ebd4e3eebfbe0d [file] [log] [blame]
// Copyright 2016 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.modular;
/// Information about a story as provided to the SessionShell.
struct StoryInfo {
/// URL of the first module run in this story. This module is free to
/// run more modules in the story. Used for display purposes only.
// TODO(thatguy): Remove this. It is not being set any more.
string:MAX? url;
/// The ID of the Story, used to reference it in method arguments.
string:MAX id;
/// Wallclock time when the story was last focused. A UTC time in
/// nanoseconds since UNIX epoch (1970-01-01 00:00).
///
/// A value of zero means the story has never been focused.
int64 last_focus_time;
/// Data the SessionShell wants to keep associated with this Story, like
/// title, a color, or a display rank.
vector<StoryInfoExtraEntry>:MAX? extra;
};
/// Information about a story as provided to the SessionShell.
/// For transition purposes only.
resource table StoryInfo2 {
/// The ID of the Story, used to reference it in method arguments.
1: string:MAX id;
/// Wallclock time when the story was last focused. A UTC time in
/// nanoseconds since UNIX epoch (1970-01-01 00:00).
///
/// A value of zero means the story has never been focused.
2: int64 last_focus_time;
/// Collection of user-defined key-value attributes that describe
/// this story.
///
/// The `Annotation.value` field of each `Annotation` is always set.
3: vector<Annotation>:MAX_ANNOTATIONS_PER_STORY annotations;
};
struct StoryInfoExtraEntry {
string:MAX key;
string:MAX value;
};