[scenic] Add fuchsia_scenic to SDK

To start off with, it contains ViewTokenPair, a handy helper type.

This helper type lets clients create ViewTokens easily without having to
interact with raw eventpairs.

SCN-1018 #comment
SCN-1291 #comment

Change-Id: I36ac8d7a196970258a9d5e7de1c7615e98a14233
diff --git a/public/dart/fuchsia_scenic/BUILD.gn b/public/dart/fuchsia_scenic/BUILD.gn
index f83a9ea..a44654f 100644
--- a/public/dart/fuchsia_scenic/BUILD.gn
+++ b/public/dart/fuchsia_scenic/BUILD.gn
@@ -12,14 +12,12 @@
   source_dir = "lib"
 
   sources = [
-    "scenic.dart",
-    "src/resources.dart",
-    "src/session.dart",
+    "src/view_token_pair.dart",
+    "views.dart",
   ]
 
   deps = [
-    "//sdk/fidl/fuchsia.ui.gfx",
-    "//sdk/fidl/fuchsia.ui.scenic",
+    "//sdk/fidl/fuchsia.ui.views",
     "//topaz/public/dart/zircon",
   ]
 }
diff --git a/public/dart/fuchsia_scenic/lib/scenic.dart b/public/dart/fuchsia_scenic/lib/scenic.dart
deleted file mode 100644
index 334bde6..0000000
--- a/public/dart/fuchsia_scenic/lib/scenic.dart
+++ /dev/null
@@ -1,7 +0,0 @@
-// Copyright 2018 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-/// A collection of utilities for working with the scenic system
-export 'src/resources.dart';
-export 'src/session.dart';
diff --git a/public/dart/fuchsia_scenic/lib/src/resources.dart b/public/dart/fuchsia_scenic/lib/src/resources.dart
deleted file mode 100644
index 0c5576a..0000000
--- a/public/dart/fuchsia_scenic/lib/src/resources.dart
+++ /dev/null
@@ -1,5 +0,0 @@
-// Copyright 2018 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.
-
-// TODO
diff --git a/public/dart/fuchsia_scenic/lib/src/session.dart b/public/dart/fuchsia_scenic/lib/src/session.dart
deleted file mode 100644
index 0c5576a..0000000
--- a/public/dart/fuchsia_scenic/lib/src/session.dart
+++ /dev/null
@@ -1,5 +0,0 @@
-// Copyright 2018 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.
-
-// TODO
diff --git a/public/dart/fuchsia_scenic/lib/src/view_token_pair.dart b/public/dart/fuchsia_scenic/lib/src/view_token_pair.dart
new file mode 100644
index 0000000..81632f5
--- /dev/null
+++ b/public/dart/fuchsia_scenic/lib/src/view_token_pair.dart
@@ -0,0 +1,24 @@
+// 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.
+
+import 'package:fidl_fuchsia_ui_views/fidl_async.dart';
+import 'package:zircon/zircon.dart';
+
+/// Helper object representing a View/ViewHolder token pair.
+class ViewTokenPair {
+  /// Token for a Scenic |View|.
+  final ViewToken viewToken;
+
+  /// Token for a Scenic |ViewHolder|.
+  final ViewHolderToken viewHolderToken;
+
+  /// Constructor.
+  ViewTokenPair() : this._fromTokens(EventPairPair());
+
+  /// Helper constructor to create from an |EventPairPair| of tokens.
+  ViewTokenPair._fromTokens(EventPairPair tokens)
+      : assert(tokens.status == ZX.OK),
+        viewToken = ViewToken(value: tokens.first),
+        viewHolderToken = ViewHolderToken(value: tokens.second);
+}
diff --git a/public/dart/fuchsia_scenic/lib/views.dart b/public/dart/fuchsia_scenic/lib/views.dart
new file mode 100644
index 0000000..6f580bf
--- /dev/null
+++ b/public/dart/fuchsia_scenic/lib/views.dart
@@ -0,0 +1,6 @@
+// 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.
+
+/// Utilities for working with Scenic Views.
+export 'src/view_token_pair.dart';
diff --git a/public/sdk/BUILD.gn b/public/sdk/BUILD.gn
index 02208c1..a1b6701 100644
--- a/public/sdk/BUILD.gn
+++ b/public/sdk/BUILD.gn
@@ -25,6 +25,7 @@
     "//topaz/public/dart/fuchsia_logger:fuchsia_logger_sdk($dart_toolchain)",
     "//topaz/public/dart/fuchsia_media:fuchsia_media_sdk($dart_toolchain)",
     "//topaz/public/dart/fuchsia_modular:fuchsia_modular_sdk($dart_toolchain)",
+    "//topaz/public/dart/fuchsia_scenic:fuchsia_scenic_sdk($dart_toolchain)",
     "//topaz/public/dart/fuchsia_scenic_flutter:fuchsia_scenic_flutter_sdk($dart_toolchain)",
     "//topaz/public/dart/fuchsia_services:fuchsia_services_sdk($dart_toolchain)",
     "//topaz/public/dart/fuchsia_vfs:fuchsia_vfs_sdk($dart_toolchain)",
diff --git a/public/sdk/fuchsia_dart.api b/public/sdk/fuchsia_dart.api
index 07dbdae..a720de1 100644
--- a/public/sdk/fuchsia_dart.api
+++ b/public/sdk/fuchsia_dart.api
@@ -3,6 +3,7 @@
 sdk://dart/fuchsia_logger
 sdk://dart/fuchsia_media
 sdk://dart/fuchsia_modular
+sdk://dart/fuchsia_scenic
 sdk://dart/fuchsia_scenic_flutter
 sdk://dart/fuchsia_services
 sdk://dart/fuchsia_vfs