We tend to think of Shared Parameters as a thing, equal to Family and Project parameters. I've even described them as such in past posts on the subject. If I'm very picky and technical they are not a thing, they are a device, a parameter definition, shared to either create a family parameter or project parameter or both.
Yes, they help us create a Family or Project parameter, but on their own they are nothing, they only exist in a text file. That text file only defines their name and data type, nothing else. Okay technically the file has a little more data in it than that but it's only used internally by Revit. It doesn't mean they have standing or truly exist on their own. We have to apply them to Family/Project parameters for them to mean something, be something, be useful.
Written another way, a family parameter (either component or system) can be created from a shared parameter and a project parameter likewise but there are no shared parameters that aren't one or the other.
This is why I regard them as a definition stored in a dictionary, the Shared Parameter file.