An object template specifies an object that can be used in games. Each template has a name, an object type (for example a generic object, a card, or even a table), and various properties that depend on its type. The object library shows available object templates and is used to create objects from templates while playing.
You can use the Editor to create object templates in your packages for each kind of object that you want. Object templates are stored as JSON files in the package folder.
Each object template can be identified by a GUID. When you create objects and store them in a game state, they refer to the object template by its GUID. So when you later change the object template, all objects in game states are automatically updated. Properties that you can change during the game (in the Properties and Appearance windows in game, int the Object Properties panel in the editor) are stored for each object separately and do not get updated when you change the template.
If you want to create object templates without using the editor, you can find the format definition of the JSON files for each object types here: https://github.com/plasticity-studios/tabletop-playground-schemas