# Overview

The schema has two uses in your project:

1. As a basis for *code generation*, creating various structs and methods that can be used in your project to communicate with the replication server.
2. As a description for the Replication Server, telling it how the data in your project looks like – to receive, store, and send this data to its clients.

When using MonoBehaviours and CoherenceSync you often don't need to interact with the schema directly. Here's an example of a small schema:

```
component Player
  name String64
  score Int
  
component Enemy
  speed Float
  hp Int
  poisonous Bool
```

To learn more about the types and definitions available in a schema, see the [specification](https://docs.coherence.io/0.7.4/schema-reference/specification).
