package thb.jeanluc.adventure.loader.dto;

import java.util.List;

/**
 * YAML representation of a single NPC.
 *
 * @param id          unique slug
 * @param name        display name
 * @param description examine description
 * @param greeting    text the NPC says on {@code talk}
 * @param reactions   list of trigger/response definitions; may be null
 * @param dialogue    optional condition-gated dialogue lines; may be null
 */
public record NpcDto(
        String id,
        String name,
        String description,
        String greeting,
        List<ReactionDto> reactions,
        List<DialogueLineDto> dialogue
) {
    /** Backward-compatible constructor without dialogue. */
    public NpcDto(String id, String name, String description, String greeting, List<ReactionDto> reactions) {
        this(id, name, description, greeting, reactions, null);
    }
}
