Custom Datatypes and Datablocks

I’m trying to make add_style create both Datablocks, and have the new Substyle Datablock selected inside the Style Datablock. Right now the Substyle block inside Style datablock doesn’t share the same values as the one found in its collection property. I want them to be the very same data, but I’m not sure of the correct terminology. Some guidance would be appreciated.

import bpy

class Substyle(bpy.types.PropertyGroup):
color: bpy.props.FloatVectorProperty(name=“Color”, size=3, default=(1.0, 1.0, 1.0))

class Style(bpy.types.PropertyGroup):
color: bpy.props.FloatVectorProperty(name=“Color”, size=3, default=(1.0, 1.0, 1.0))
selected_substyle: bpy.props.PointerProperty(type=Substyle)

bpy.utils.register_class(Substyle)
bpy.utils.register_class(Style)

bpy.types.Scene.Substyles = bpy.props.CollectionProperty(type=Substyle)
bpy.types.Scene.Styles = bpy.props.CollectionProperty(type=Style)

def add_substyle(context):
substyles = context.scene.Substyles
substyle = substyles.add()
substyle.color = (1.0, 1.0, 1.0)

def add_style(context):
styles = context.scene.Styles
substyles = context.scene.Substyles
style = styles.add()
substyle = substyles.add()
style.name = “Style Block” # set a unique name
substyle.name = “Substyle Block” # set a unique name
substyle.color = (1.0, 0.0, 0.0) # set the color of the new substyle
style.color = (1.0, 0.0, 0.0) # set the color of the new style
style.selected_substyle = substyle # set the newly added substyle as the selected one

add_style(bpy.context)