Templater for Hierarchical Properties

I have this bad habit of expecting something to work the way I think it should work and get lost when it doesn’t. I’ve spent hours trying to make this happen and need help. Maybe it just can’t be done.

What I’m trying to do

I have created a template called “core properties”. In this template, I’ve added the minimum properties that I want in all my notes. I intend to include the core properties in each of my more specific templates, like a books template. I expect that when I apply the books template to a new note I will get the core + book properties. I’ll add examples below.

This generally works. Where I run into problems is when a property name in the specific template matches a property name in the core.

In the core I have:
tags:

Every file needs a tags property in my vault. If I’m creating a new generic note this ensures there’s a tags property.

In the book template I have:
tags: book

This kills it. When I apply the book template to a new note it silently fails. No output.

Things I have tried

I’ve tried everything I can think of. I’ve concluded it’s probably working as designed. But, I’m more of an Obsidian user than a troubleshooter. It doesn’t seem like what I’m asking is far fetched. I’m hoping I’m just missing something simple.

This is what’s in my core template:

tags:
note_status: inbox
note_type:
hub:
context:
created: <% tp.file.creation_date(“YYYY-MM-DD HH:mm:ss”) %>
modified: <% tp.file.last_modified_date(“YYYY-MM-DD HH:mm:ss”) %>

And this is what’s in my test template that works:

---
<% tp.file.include(“[[Core Properties]]”) %>
testTag: newTag
---

And this fails silently:

---
<% tp.file.include(“[[Core Properties]]”) %>
tags: newTag
---

Any help? It doesn’t need to be templater. Is there another option? Or am I just thinking wrong about this whole template thing.

Kev