using System.Text.Json.Serialization; using MultiversalDiplomacy.Model; namespace MultiversalDiplomacy.Orders; /// /// A submitted action by a power. /// [JsonPolymorphic(TypeDiscriminatorPropertyName = "type")] [JsonDerivedType(typeof(BuildOrder), typeDiscriminator: "move")] [JsonDerivedType(typeof(ConvoyOrder), typeDiscriminator: "convoy")] [JsonDerivedType(typeof(DisbandOrder), typeDiscriminator: "disband")] [JsonDerivedType(typeof(HoldOrder), typeDiscriminator: "hold")] [JsonDerivedType(typeof(MoveOrder), typeDiscriminator: "move")] [JsonDerivedType(typeof(RetreatOrder), typeDiscriminator: "retreat")] [JsonDerivedType(typeof(SupportHoldOrder), typeDiscriminator: "supportHold")] [JsonDerivedType(typeof(SupportMoveOrder), typeDiscriminator: "supportMove")] [JsonDerivedType(typeof(SustainOrder), typeDiscriminator: "sustain")] public abstract class Order { /// /// The power that submitted this order. /// public string Power { get; } public Order(string power) { this.Power = power; } }