// <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 'phases'.
    /// </summary>
    /// <remarks>
    ///     Schema property path: 'phases'.
    ///     Allowed values: { "wave": 1, "monsterId": "slime" }, { "wave": 2, "monsterId": "goblin" }.
    ///     Generated default initializer: = global::System.Array.Empty&lt;PhasesItemConfig&gt;();
    /// </remarks>
    public global::System.Collections.Generic.IReadOnlyList<PhasesItemConfig> Phases { get; set; } = global::System.Array.Empty<PhasesItemConfig>();

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

        /// <summary>
        ///     Gets or sets the value mapped from schema property path 'phases[].monsterId'.
        /// </summary>
        /// <remarks>
        ///     Schema property path: 'phases[].monsterId'.
        ///     Generated default initializer: = string.Empty;
        /// </remarks>
        public string MonsterId { get; set; } = string.Empty;

    }
}