// <auto-generated />
#nullable enable

namespace GFramework.Game.Config.Generated;

/// <summary>
///     Auto-generated config type for schema file 'monster.schema.json'.
///     This type is generated from JSON schema so runtime loading and editor tooling can share the same contract.
/// </summary>
public sealed partial class MonsterConfig
{
    /// <summary>
    ///     Gets or sets the value mapped from schema property path 'id'.
    /// </summary>
    /// <remarks>
    ///     Schema property path: 'id'.
    /// </remarks>
    public int Id { get; set; }

    /// <summary>
    ///     Gets or sets the value mapped from schema property path 'reward'.
    /// </summary>
    /// <remarks>
    ///     Schema property path: 'reward'.
    ///     Allowed values: { "gold": 10, "itemId": "potion" }, { "gold": 50, "itemId": "gem" }.
    ///     Generated default initializer: = new();
    /// </remarks>
    public RewardConfig Reward { get; set; } = new();

    /// <summary>
    ///     Auto-generated nested config type for schema property path 'reward'.
    ///     This nested type is generated so object-valued schema fields remain strongly typed in consumer code.
    /// </summary>
    public sealed partial class RewardConfig
    {
        /// <summary>
        ///     Gets or sets the value mapped from schema property path 'reward.gold'.
        /// </summary>
        /// <remarks>
        ///     Schema property path: 'reward.gold'.
        /// </remarks>
        public int Gold { get; set; }

        /// <summary>
        ///     Gets or sets the value mapped from schema property path 'reward.itemId'.
        /// </summary>
        /// <remarks>
        ///     Schema property path: 'reward.itemId'.
        ///     Generated default initializer: = string.Empty;
        /// </remarks>
        public string ItemId { get; set; } = string.Empty;

    }
}