// Copyright 2020 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.developer.bridge;

const MAX_GIT_COMMIT_LENGTH uint16 = 40;
const MAX_BUILD_VERSION_LENGTH uint16 = 100;

type VersionInfo = table {
    // Git commit hash of HEAD at build time.
    1: commit_hash string:MAX_GIT_COMMIT_LENGTH;
    // UTC timestamp of the HEAD commit in seconds.
    2: commit_timestamp uint64;
    // The build version, pulled from //build/info
    3: build_version string:MAX_BUILD_VERSION_LENGTH;
};
