using System.Text.Json.Serialization;
namespace ModelContextProtocol.Protocol;
///
/// Represents an argument that a prompt can accept for templating and customization.
///
///
///
/// The class defines metadata for arguments that can be provided
/// to a prompt. These arguments are used to customize or parameterize prompts when they are
/// retrieved using requests.
///
///
/// See the schema for details.
///
///
public sealed class PromptArgument : IBaseMetadata
{
///
[JsonPropertyName("name")]
public required string Name { get; set; }
///
[JsonPropertyName("title")]
public string? Title { get; set; }
///
/// Gets or sets a human-readable description of the argument's purpose and expected values.
///
///
/// This description helps developers understand what information should be provided
/// for this argument and how it will affect the generated prompt.
///
[JsonPropertyName("description")]
public string? Description { get; set; }
///
/// Gets or sets a value that indicates whether this argument must be provided when requesting the prompt.
///
///
/// When set to , the client must include this argument when making a request.
/// If a required argument is missing, the server should respond with an error.
///
[JsonPropertyName("required")]
public bool? Required { get; set; }
}