blob: 92dec8de6f13d41ba4c6759a26302146f59076df [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.
type StoryInfo = struct {
/// 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.
url string:<MAX, optional>;
/// The ID of the Story, used to reference it in method arguments.
id string:MAX;
/// 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.
last_focus_time int64;
/// Data the SessionShell wants to keep associated with this Story, like
/// title, a color, or a display rank.
extra vector<StoryInfoExtraEntry>:<MAX, optional>;
};
/// Information about a story as provided to the SessionShell.
/// For transition purposes only.
type StoryInfo2 = resource table {
/// The ID of the Story, used to reference it in method arguments.
1: id string:MAX;
/// 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: last_focus_time int64;
/// Collection of user-defined key-value attributes that describe
/// this story.
///
/// The `Annotation.value` field of each `Annotation` is always set.
3: annotations vector<Annotation>:MAX_ANNOTATIONS_PER_STORY;
};
type StoryInfoExtraEntry = struct {
key string:MAX;
value string:MAX;
};