Type definitions extend built-in object types with reusable property contracts and traits.
Type definitions
simulation.type_definitions is an object keyed by custom type ID. Each definition requires extends.
{
"type_definitions": {
"autoclave": {
"extends": "equipment",
"traits": ["automated_performer"],
"additional_properties": {
"temperature": { "type": "number" }
}
}
}
}The inheritance chain must resolve to a built-in type. Custom objects inherit the base type's required properties.
Declared properties
additional_properties declares type expectations for custom properties. Runtime-created objects must satisfy these declared types.
Supported property contracts depend on runtime validation. Keep initial and runtime-created values consistent with the declaration.
Type traits
simulation.type_traits is an object keyed by trait ID. A type definition lists trait IDs in traits.
A trait with can_be_actor_id: true makes a matching custom type eligible as a performer. Built-in actors, equipment, and services are performers without this trait.
{
"type_traits": {
"automated_performer": {
"can_be_actor_id": true
}
}
}Reserved type names
Do not use a type name that starts with _. Do not use timeline_actors, any, or unknown.