package thb.jeanluc.adventure.loader;

import thb.jeanluc.adventure.loader.dto.NpcDto;
import thb.jeanluc.adventure.model.Npc;

/**
 * Builds an NPC shell (without resolved reactions) from a DTO. Reactions
 * are wired in a later phase by {@link ReferenceResolver}.
 */
public final class NpcFactory {

    private NpcFactory() {
    }

    /**
     * Builds an NPC carrying an empty reactions map.
     *
     * @param dto data read from {@code npcs.yaml}; must not be null
     * @return the freshly built NPC shell
     */
    public static Npc shellFromDto(NpcDto dto) {
        return Npc.shell(dto.id(), dto.name(), dto.description(), dto.greeting());
    }
}
