should `template_id` be optional?