In SpatialOS, your game world is defined and controlled centrally. Many different types of server-workers may need to access and make changes to the game world, so they need a common language with which to do this. That language is schema.
As a developer using SpatialOS, you will define a schema for your game world. That schema contains definitions for every component in the world: it expresses what properties, events, and commands are contained in those components.
When you create new entities, you compose them out of the components defined in your schema.
SpatialOS uses schema you have written to generate APIs specific to the components in your game world. These APIs define how you can operate on your entity components, such as reading and writing component data or sending component commands. When you write code for your workers to specify the changes which happen to entities in your game, you use these APIs.