The app stores a key/value list of all schemas registered for use (id -> filepath). Schemas are then loaded up at runtime as they're needed.
By design, it's currently possible to replace the filepath to an existing schema to allow customisation (a warning is logged when this happens), but this should probably be closed off a bit.
Side-note: schema files which are updated and use the same file path as the original file (i.e. where the original file is overwritten, like in plugin/framework upgrades) aren't affected by this, it's only for cases where the same schema name is registered to a new path.
The app stores a key/value list of all schemas registered for use (id -> filepath). Schemas are then loaded up at runtime as they're needed.
By design, it's currently possible to replace the filepath to an existing schema to allow customisation (a warning is logged when this happens), but this should probably be closed off a bit.
Side-note: schema files which are updated and use the same file path as the original file (i.e. where the original file is overwritten, like in plugin/framework upgrades) aren't affected by this, it's only for cases where the same schema name is registered to a new path.