namespace Theriapolis.GodotHost.Scenes.Steps;

/// <summary>
/// Common contract for character-creation step scenes. Mirrors
/// <c>app.jsx</c>'s per-step <c>validate</c> pattern: each step inspects
/// the shared draft and returns null when its requirements are met, or
/// a short error string otherwise.
///
/// Step classes also extend <see cref="Godot.Control"/> so they can be
/// parented into the wizard's StepHost. Bind() is called once after
/// instantiation; Godot drives the lifecycle as usual.
/// </summary>
public interface IStep
{
    void Bind(UI.CharacterDraft draft);
    string? Validate();
}
