@konnorrogers I have no idea what morphing operation you're talking about, but setting the attributes from constructor initialization is clearly a bug (only happens when not using decorators, and a known issue: https://github.com/lit/lit/issues/1476) and IMO this should be worked around using getter/setter (which can also easily solve the question of what to do when the property is set to null/undefined or the attribute is removed)
See https://blog.ltgt.net/web-component-properties/ for my take on reflected properties.