You can manage this with Battle Core Visustella and Skill Core alone albeit in a convoluted way (and unfortunately would still mean needing multiple skill type Ids)
Create a Catch all Skill Type ID for use in Battle. Say for this example Skill Type 5 = "Battle Skills"
In battle core under Actor Command Window> Command List:
Set the Battle Skills Skill Type (Skill Type 5 for our example) as the only "skill related" thing there.
So the Commands would read something like
Attach
Skill Type 5 (i don't remember if guard or skills usually comes first)
Guard
Item
Escape
Since you "dont want multiple skill Types" we're going to create a kind of catch all Skill Type, we'll call it "Magic" for now as
Skill Type 6
After, create a Skill Type ID that coincides with each Class specific skill list you're wanting to create.
Upfront I'd say to name each Skill Type after the class itself (for organization purposes)
Each Class Should have Access to ONLY it's skill Type as a trait
View attachment 264774
Actors will not receive any class based skill types traited to them. Only the "Magic" catch all
View attachment 264775
Add your Skill Types to skills as normal based on what class should have access to them:
View attachment 264773
In the skill's note tag we're going to add in the following note tag:
<Skill Types: 5,6>
View attachment 264776
This will have the system recognize The skill as note only the magic type you set, but also as make it visible in battle since Skill Type 5 is used in battle, and viewable in the Skill Scene since Skill Type 6 is your magic catch all.
I haven't tested this in the exact way you want with different Classes having different access to different skill sets. In theory, since the base skill type is only accessible based on class, only that classes skills should currently be visible.
Give it a try if youre open to using Visustella (the core plugins are free)
My suggestion is based on MZ since thats in your "Primarily uses"