tl;dr: the sync/live editing is very impressive, and that's encouraging if it ever wants to become a collaborative tool (would I ever have the need for one), but the way attributes are managed is manual and inconsistent.
A reply to my comment says that they are putting some thought into the problem, so I'll definitely keep an eye on them and see what they come up with.
At their place, I would:
- do away with the current templates implementation, it lets you define attributes at template (=representation) level and at type (=model) level simultaneously. I'm also unconvinced that a type needs multiple competing ways to be represented
- consider organizing types as hierarchies with attributes inheritance as a core principle. Done right, it could address one of notion's biggest shortcomings and be a more approachable Tana's "supertag"
- consider letting template blocks be annotated as to prevent type instances/objects to change their layout too much (that's something Trilium doesn't have due to its rudimentary editor and which I sometimes miss), this could also be used to configure how inheriting types could alter (or not) the base type's layout
- imposing all new objects to be typed or at least suggesting a type to derive from. Changing the type of an object isn't easy (I don't remember if even possible), so it's probably good to encourage the user thinking about it upfront
To be frank, this is still self-deception. Your subconscious won't be tricked by this kind of trickery. It's like being both the player and the referee in a game. You still need external feedback to improve yourself.