How to structure a ScriptableObject and monobehavior of the same in game concept?

I am trying to implement different characters in my game, that all have a name, health, attack, move speed etc associated with them. I have set up a ScriptableObject class for this, that just contains various basic variables, and I have created the assets and filled them with data.

I want to use this data in-game with some kind of monobehaviour, so different characters can interact and do game logic. Trouble is, it feels silly to write essentially the same class over again, just so I can inherit from monobehaviour. For example, I would have a Character_ScriptableObject class and then a Character_MonoBehaviour class with all the same properties, aside from some game logic in the MB one. Some quick sample code -

class Character_SO : ScriptableObject
{
string characterName;
int attack;
int health;
float moveSpeed;
}

class Character_MB : MonoBehaviour
{
string characterName;
int attack;
int health;
float moveSpeed;

// Some functions...
}

My questions are these: Can I transfer this data over to some kind of monobehavior without writing the whole class and properties over again? What are patterns that folk commonly follow? What are the schools of thought on this topic?

class Character_MB : MonoBehaviour
{
public Character_SO stats;

 // Some functions...
 }

Simply assign your scriptable object to the mono. Then you can directly access it’s variables