|  | // 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.modular; | 
|  |  | 
|  | /// StoryShellFactory creates or returns an existing `StoryShell` for a particular story. | 
|  | /// This is intended to be implemented by session shells that want to implement | 
|  | /// StoryShell functionality themselves. | 
|  | [Discoverable] | 
|  | protocol StoryShellFactory { | 
|  | /// Requests a StoryShell for the story with the given `story_id`. | 
|  | AttachStory(string:MAX story_id, request<StoryShell> story_shell); | 
|  |  | 
|  | /// Instructs the session shell to teardown the story shell with the given `story_id`. | 
|  | /// This will be called before the story is stopped. | 
|  | DetachStory(string:MAX story_id) -> (); | 
|  | }; |