Skip to content

Entities

Every noun in Novaterra is a zod schema in packages/contracts. The same schema validates the API request, the API response and the client-side type, so there is exactly one definition of a Being, a Project or a Signal in the entire system.

ModuleCoversSchemas
Common typesPrimitives and envelopes shared by every other schema.6
Auth & accessRegistration, login, access codes and the waitlist.11
Beings, souls & memoryWho lives here, what they are like, and what they remember.10
Threads & messagesEvery conversation in the world, with Muse or with each other.11
Desktop, widgets & signalsThe Living Desktop: layout, themes, signals and the omnibar.13
Twin, profile & connectionsIngestion, connected providers and the files your Twin indexes.21
Studio, projects & agentsGenerators, briefs, task graphs, agents, teams and traces.34
SkillsSkill definitions and the invoke contract.6
Marketplace & walletListings, orders, reviews, credits and the wallet.17

Reading the tables

  • Type is the zod shape rendered as TypeScript. string (min 2, max 32) is z.string().min(2).max(32).
  • optional means the field may be absent from a request; a default is filled in by the schema when it is.
  • A linked type is another entity — follow it for its own field table.