Readonly~@dxos/echo/ReadonlyartifactsArtifacts (documents, outliners, tables, ...), in order.
Optional ReadonlydescriptionReadonlyidOptional ReadonlyinstructionsOwned agent instructions (created at the plugin layer; parented by SetParent).
Optional ReadonlynameOptional ReadonlyoutlineAd hoc markdown checklist — the scratch surface; project chats write into it.
ReadonlyroutinesRoutines the project owns, in order, parented so they cascade-delete with it.
ReadonlyspecsOwned specs, in order: the normative text the project's tasks deliver. A form creates each and edits it inline. Suspended because Spec refers back.
Optional ReadonlystatusWork-stream lifecycle state.
Optional ReadonlytaskOwned (or adopted synced) task container, holding the project's tasks and milestones.
Static Readonly~@dxos/echo/Entity-kind brand of the type-entity value itself — always EntityKind.Type.
The kind of instance the type describes lives on [SchemaKindId]
(Object / Relation / Type). Lets Obj.isObject / Relation.isRelation
reject type entities by a single [KindId] check.
Static Readonly~@dxos/echo/Schema-kind brand (object).
Static Optional Readonly~@dxos/echo/Static Readonly~@dxos/echo/Source Effect Schema — used internally by Type.getSchema(self).
Static ReadonlyfieldsThe fields defined in the original struct schema. Allows accessing field definitions for introspection.
Static ReadonlyidObject id. Like all ECHO entities, type entities always carry an id —
stamped at construction for in-memory (static) declarations and assigned by
the database once persisted. The id does NOT determine the entity's URI:
static types resolve to their typename DXN, persisted types to echo:///<id>
(see getTypeURIFromSpecifier).
Static ReadonlyjsonStatic Optional Readonlyname
A user-facing container for interactive, long-running work: instructions (skills + commands), artifacts, tasks, and AI chat sessions in project context. Successor to
Topic.Fields are the refs the project owns and orders; everything that merely accumulates around it is a query — chats by the ECHO parent edge, agents via chats. What only some projects need, such as the repositories coding agents work on, is an annotation the plugin that needs it adds.