You can usually do this by only being additive with the spec, and by never mixing user-defined keys and spec-defined keys in the same object.
I've only ever seen $ used before with meta properties that work across all schemas like the $ref you mentioned and $schema.