class IntentRenderer {

    public Intent renderIntent(IntentDefinition intentDefinition, IntentData intentData) {
        List<Slot> slots = intentDefinition.getSlots().entrySet().stream()
            .map(s -> intentSlotRenderer.renderSlot(s.getKey(), s.getValue(), intentData))
            .collect(Collectors.toList());

        return Intent.builder()
            .withName(intentDefinition.getName())
            .withSlots(slots.isEmpty() ? null : slots)
            .withSamples(intentData.getSamples().isEmpty() ? null : new ArrayList<>(intentData.getSamples()))
            .build();
    }

    public  IntentRenderer(IntentSlotRenderer intentSlotRenderer);
    public  IntentRenderer();

}