//
// Dialog.cs
//
// Copyright (c) František Boháček. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
using NosSmooth.Game.Apis;
using NosSmooth.Packets.Enums;
using OneOf;
namespace NosSmooth.Game.Data.Dialogs;
///
/// Represents dialog sent by the server
///
///
/// To deny a dialog with null , just ignore it.
///
/// For answering to a dialog, use .
/// It takes care of collisions. In case the same dialog is accepted
/// and denied from elsewhere, an error will be returned.
///
/// The accept command/packet sent upon accept.
/// The deny command/packet sent upon denying. This may be null for some dialogs. To deny a dialog with null DenyCommand, just ignore it.
/// The message of the dialog, may be a constant i18n message, or a string.
/// The parameters of the i18n message. Empty for string messages.
public record Dialog
(
string AcceptCommand,
string? DenyCommand,
OneOf Message,
IReadOnlyList Parameters
);