> ## Documentation Index
> Fetch the complete documentation index at: https://docs.chronicle-labs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Set up world evaluation

> Create or retry the world task suite, scorers, and environment version. No request body. Returns the world with the updated evaluation object. A world with no tasks returns 400.

Use the [SDK setup](/api-reference/languages/overview#use-the-guide-examples) with CHRONICLE_API_KEY and CHRONICLE_API_URL. The Go and Rust samples are complete entry points; Rust also needs Tokio (see [Rust setup](/api-reference/languages/rust)). Set WORLD_ID to the world.id returned by a launch or world-list result. Check evaluation.status; see [Retry task setup](/api-reference/worldsmith#retry-task-setup).

The schema below is the HTTP representation. SDKs normalize field names and list wrappers; see [SDK and HTTP fields](/api-reference/worldsmith#sdk-and-http-fields).



## OpenAPI

````yaml /api-reference/worldsmith-openapi.json post /v1/worldsmith/worlds/{worldId}/materialize
openapi: 3.1.0
info:
  title: Chronicle Labs Worldsmith API
  version: 1.0.0
  description: >-
    Compile blueprints, launch worlds, and read the twins and tasks they create.
    Authenticate every request with your Chronicle API key as a bearer token.
  x-source-contracts: >-
    packages/chronicle/src/json-schema/worldsmith;
    backend/crates/api/src/platform/worldsmith
servers: []
security:
  - ApiKey: []
tags:
  - name: Worldsmith
    description: >-
      Compile blueprints into worlds of connected service twins, launch them,
      and read what they created.
paths:
  /v1/worldsmith/worlds/{worldId}/materialize:
    parameters:
      - name: worldId
        in: path
        required: true
        description: The world version ID, from world.id.
        schema:
          type: string
    post:
      tags:
        - Worldsmith
      summary: Set up world evaluation
      description: >-
        Create or retry the world task suite, scorers, and environment version.
        No request body. Returns the world with the updated evaluation object. A
        world with no tasks returns 400.


        Use the [SDK
        setup](/api-reference/languages/overview#use-the-guide-examples) with
        CHRONICLE_API_KEY and CHRONICLE_API_URL. The Go and Rust samples are
        complete entry points; Rust also needs Tokio (see [Rust
        setup](/api-reference/languages/rust)). Set WORLD_ID to the world.id
        returned by a launch or world-list result. Check evaluation.status; see
        [Retry task setup](/api-reference/worldsmith#retry-task-setup).


        The schema below is the HTTP representation. SDKs normalize field names
        and list wrappers; see [SDK and HTTP
        fields](/api-reference/worldsmith#sdk-and-http-fields).
      operationId: materializeWorldEvaluation
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorldResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/InternalError'
        '503':
          $ref: '#/components/responses/Unavailable'
      x-codeSamples:
        - lang: python
          label: Python
          source: |-
            from chronicle import Chronicle
            import os

            world_id = os.environ["WORLD_ID"]
            with Chronicle() as client:
                result = client.worlds.materialize(world_id)
                print(result.world.id, result.status, result.evaluation)
        - lang: typescript
          label: TypeScript
          source: |-
            import { Chronicle } from "@chroniclelabs/sdk";

            const client = new Chronicle();
            const worldId = process.env.WORLD_ID;
            if (!worldId) throw new Error("Set WORLD_ID");
            const result = await client.worlds.materialize(worldId);
            console.log(result.world.id, result.status, result.evaluation);
        - lang: javascript
          label: JavaScript
          source: |-
            import { Chronicle } from "@chroniclelabs/sdk";

            const client = new Chronicle();
            const worldId = process.env.WORLD_ID;
            if (!worldId) throw new Error("Set WORLD_ID");
            const result = await client.worlds.materialize(worldId);
            console.log(result.world.id, result.status, result.evaluation);
        - lang: go
          label: Go
          source: "package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"log\"\n\t\"os\"\n\t\"time\"\n\n\tchronicle \"github.com/chronicle-labs/chronicle-go\"\n)\n\nfunc main() {\n\tif err := example(); err != nil { log.Fatal(err) }\n}\n\nfunc example() error {\n\tctx, cancel := context.WithTimeout(context.Background(), 120*time.Second)\n\tdefer cancel()\n\tclient := chronicle.NewClient()\n\tworldID := os.Getenv(\"WORLD_ID\")\n\tif worldID == \"\" { return fmt.Errorf(\"set WORLD_ID\") }\n\tresult, err := client.Worlds.Materialize(ctx, worldID)\n\tif err != nil {\n\t\treturn err\n\t}\n\tfmt.Println(result.World.ID, result.Status, result.Evaluation)\n\treturn nil\n}"
        - lang: rust
          label: Rust
          source: |-
            use chronicle_sdk::Chronicle;

            #[tokio::main]
            async fn main() -> Result<(), Box<dyn std::error::Error>> {
                let client = Chronicle::from_env()?;
                let world_id = std::env::var("WORLD_ID")?;
                let result = client.worlds().materialize(&world_id).await?;
                println!("{} {:?} {:?}", result.world.id, result.status, result.evaluation);
                Ok(())
            }
components:
  schemas:
    WorldResponse:
      description: A world with its twin instances resolved.
      properties:
        evaluation:
          properties:
            environmentId:
              type:
                - string
                - 'null'
            environmentVersionId:
              type:
                - string
                - 'null'
            error:
              type:
                - string
                - 'null'
            status:
              $ref: '#/components/schemas/WorldEvaluationStatus'
            taskSuiteId:
              type:
                - string
                - 'null'
            taskSuiteVersionId:
              type:
                - string
                - 'null'
            tasks:
              default: []
              items:
                $ref: '#/components/schemas/WorldEvaluationTask'
              type: array
            version:
              format: uint32
              minimum: 0
              type: integer
          required:
            - status
            - version
          type:
            - object
            - 'null'
        launchError:
          description: >-
            A launch failure is retained with its physical version for
            inspection.
          type:
            - string
            - 'null'
        status:
          $ref: '#/components/schemas/WorldStatus'
        twins:
          description: The live records of the twins in `world.twins`, same order.
          items:
            $ref: '#/components/schemas/TwinInstanceRecord'
          type: array
        version:
          $ref: '#/components/schemas/WorldVersion'
        warnings:
          default: []
          description: >-
            Compiler warnings from the forge; only present on the forge
            response, never persisted.
          items:
            type: string
          type: array
        world:
          $ref: '#/components/schemas/WorldRecord'
      required:
        - status
        - twins
        - version
        - world
      type: object
    WorldEvaluationStatus:
      enum:
        - materializing
        - ready
        - failed
      type: string
    WorldEvaluationTask:
      properties:
        key:
          type: string
        membershipId:
          type: string
        scorers:
          items:
            $ref: '#/components/schemas/WorldEvaluationScorer'
          type: array
        taskId:
          type: string
        title:
          type: string
      required:
        - key
        - membershipId
        - scorers
        - taskId
        - title
      type: object
    WorldStatus:
      description: >-
        Aggregate of the world's twin instance statuses.


        `forging`: At least one twin is still provisioning.


        `ready`: Every twin is running.


        `degraded`: Every twin is live but at least one failed its last health
        probe.


        `failed`: At least one twin failed to provision.


        `retired`: Every twin was stopped or expired.
      type: string
      enum:
        - forging
        - ready
        - degraded
        - failed
        - retired
    TwinInstanceRecord:
      description: >-
        The wire shape of one twin instance. Deliberately excludes the boot-time
        seed token; the SDK bearer `token` is the one users need.
      properties:
        baseUrl:
          type:
            - string
            - 'null'
        createdAt:
          format: date-time
          type: string
        createdBy:
          type: string
        datasetVersionId:
          type:
            - string
            - 'null'
        environmentVersionId:
          type:
            - string
            - 'null'
        error:
          type:
            - string
            - 'null'
        expiresAt:
          format: date-time
          type:
            - string
            - 'null'
        flyAppName:
          type:
            - string
            - 'null'
        flyMachineId:
          type:
            - string
            - 'null'
        id:
          type: string
        image:
          type: string
        region:
          type:
            - string
            - 'null'
        scenarioId:
          type:
            - string
            - 'null'
        service:
          description: Twin model name, e.g. `slack`.
          type: string
        status:
          $ref: '#/components/schemas/TwinInstanceStatus'
        tenantId:
          type: string
        token:
          description: Bearer token the twin accepts (`TWIN_TOKEN`).
          type: string
        updatedAt:
          format: date-time
          type: string
      required:
        - createdAt
        - createdBy
        - id
        - image
        - service
        - status
        - tenantId
        - token
        - updatedAt
      type: object
    WorldVersion:
      properties:
        number:
          description: One-based launch number, allocated atomically within the lineage.
          format: int32
          type: integer
        parentWorldId:
          description: The exact version whose working draft was used for this launch.
          type:
            - string
            - 'null'
        rootWorldId:
          description: >-
            The first physical world ID; stable across every launch in this
            lineage.
          type: string
      required:
        - number
        - rootWorldId
      type: object
    WorldRecord:
      description: 'A forged world as persisted: the blueprint plus the twins it spun up.'
      properties:
        blueprint:
          $ref: '#/components/schemas/WorldBlueprint'
        createdAt:
          format: date-time
          type: string
        createdBy:
          type: string
        id:
          type: string
        name:
          type: string
        summary:
          type: string
        tenantId:
          type: string
        twins:
          items:
            $ref: '#/components/schemas/WorldTwinLink'
          type: array
        updatedAt:
          format: date-time
          type: string
      required:
        - blueprint
        - createdAt
        - createdBy
        - id
        - name
        - summary
        - tenantId
        - twins
        - updatedAt
      type: object
    ApiError:
      type: object
      required:
        - error
      properties:
        error:
          type: string
      example:
        error: World not found
    WorldEvaluationScorer:
      properties:
        key:
          type: string
        scorerId:
          type: string
      required:
        - key
        - scorerId
      type: object
    TwinInstanceStatus:
      type: string
      enum:
        - running
        - provisioning
        - degraded
        - stopped
        - expired
        - failed
      description: >-
        `provisioning`: Row exists; the machine is being created and
        health-gated.


        `degraded`: The machine exists but its last health probe failed.


        `stopped`: Torn down on request.


        `expired`: Torn down by the reaper after its TTL passed.


        `failed`: Provisioning never produced a usable machine.
    WorldBlueprint:
      description: >-
        A blueprint for a simulated system: connected service twins, shared
        identities, records, and scenario tasks. A company workflow is one
        example. The current blueprint format includes organization metadata and
        the service-specific sections below.
      properties:
        clock:
          description: >-
            The "now" of the story as an ISO-8601 UTC timestamp, e.g.
            "2026-09-03T17:00:00Z". Every other timestamp in the blueprint
            should be at or before this moment.
          type: string
        identities:
          description: >-
            The people who exist in every twin. Use 3 to 8 identities; each one
            gets a native account in every service that is forged.
          items:
            $ref: '#/components/schemas/IdentityBlueprint'
          type: array
        name:
          description: Short display name for the world, e.g. "Acme — Q3 launch".
          type: string
        organization:
          $ref: '#/components/schemas/OrganizationBlueprint'
        scenario:
          $ref: '#/components/schemas/ScenarioBlueprint'
        summary:
          description: >-
            Two or three sentences: who the organization is and what is going on
            in this world right now.
          type: string
        twins:
          $ref: '#/components/schemas/TwinsBlueprint'
      required:
        - clock
        - identities
        - name
        - organization
        - scenario
        - summary
        - twins
      type: object
    WorldTwinLink:
      description: One twin instance a world forged.
      properties:
        entityCount:
          format: int32
          type: integer
        seedSha256:
          type: string
        service:
          description: Twin model name, e.g. `slack`.
          type: string
        twinInstanceId:
          type: string
      required:
        - entityCount
        - seedSha256
        - service
        - twinInstanceId
      type: object
    IdentityBlueprint:
      description: One person who exists across every twin.
      properties:
        department:
          $ref: '#/components/schemas/Department'
        emailLocalPart:
          default: null
          description: Email local part; defaults to the handle.
          type:
            - string
            - 'null'
        firstName:
          type: string
        handle:
          description: >-
            Unique lowercase handle used to reference this person everywhere
            else in the blueprint (Slack authors and mentions, Linear assignees,
            Salesforce owners), e.g. "mara". Letters, digits, dots, dashes and
            underscores only.
          type: string
        isApiOwner:
          default: false
          description: >-
            Exactly one identity is the API owner: the account an agent acts as
            in Linear and the integration user's counterpart in the other
            services. Defaults to the first identity when nobody is flagged.
          type: boolean
        lastName:
          type: string
        timezone:
          description: IANA time zone, e.g. "America/Denver".
          type: string
        title:
          description: Job title, e.g. "VP Operations".
          type: string
      required:
        - department
        - firstName
        - handle
        - lastName
        - timezone
        - title
      type: object
    OrganizationBlueprint:
      description: >-
        The organization whose Slack workspace, Linear workspace, Salesforce org
        and SAP system the twins impersonate. Its people are the identities; its
        customers show up as Salesforce accounts and SAP business partners.
      properties:
        description:
          description: One paragraph about the business.
          type: string
        emailDomain:
          description: Email domain for identities, e.g. "acme.com".
          type: string
        headquarters:
          default: null
          description: City and region, e.g. "Denver, CO".
          type:
            - string
            - 'null'
        industry:
          description: Industry in a few words, e.g. "Specialty retail holding company".
          type: string
        name:
          description: Display name, e.g. "Acme".
          type: string
        slug:
          description: >-
            Lowercase URL-safe slug of 3 to 20 characters (letters, digits,
            dashes), e.g. "acme". Becomes the Slack workspace domain and the
            Linear workspace URL key.
          type: string
      required:
        - description
        - emailDomain
        - industry
        - name
        - slug
      type: object
    ScenarioBlueprint:
      description: The storyline that ties the twins together.
      properties:
        narrative:
          description: >-
            One to three paragraphs: what happened, what is in flight, where the
            tension is.
          type: string
        suggestedTasks:
          default: []
          description: >-
            2 to 5 things an agent could be asked to do in this world, phrased
            as tasks, e.g. "Post a status update in #erp-rollout summarizing
            ENG-3".
          items:
            type: string
          type: array
        tasks:
          default: []
          description: >-
            Real evaluation tasks with ordered instructions and verifiable
            changes. Generate 2–5 tasks. suggestedTasks is legacy; leave it
            empty on new drafts.
          items:
            $ref: '#/components/schemas/WorldTaskBlueprint'
          type: array
        threads:
          description: >-
            The threads that run across twins. Each names the records involved
            so a reader or an agent can follow the story from one system to the
            next.
          items:
            $ref: '#/components/schemas/ScenarioThreadBlueprint'
          type: array
        title:
          type: string
      required:
        - narrative
        - threads
        - title
      type: object
    TwinsBlueprint:
      description: >-
        The twins to forge. A present section means "forge this twin"; omit the
        sections the user did not ask for.
      properties:
        linear:
          default: null
          description: The organization's Linear workspace.
          properties:
            issues:
              description: >-
                Issues in creation order. Identifiers are minted per team in
                this order — the first ENG issue is ENG-1, the second ENG-2 — so
                refer to them that way from other twins (Slack messages,
                Salesforce case subjects).
              items:
                $ref: '#/components/schemas/LinearIssueBlueprint'
              type: array
            projects:
              default: []
              items:
                $ref: '#/components/schemas/LinearProjectBlueprint'
              type: array
            teams:
              description: >-
                1 to 4 teams. Every team gets the standard workflow (Backlog,
                Todo, In Progress, In Review, Done, Canceled) and the default
                labels (Bug, Feature, Improvement).
              items:
                $ref: '#/components/schemas/LinearTeamBlueprint'
              type: array
          required:
            - issues
            - teams
          type:
            - object
            - 'null'
        salesforce:
          default: null
          description: >-
            The organization's Salesforce org: its customers, prospects,
            pipeline and support cases. Identities become Salesforce users.
          properties:
            accounts:
              description: 3 to 8 customer and prospect accounts.
              items:
                $ref: '#/components/schemas/SalesforceAccountBlueprint'
              type: array
            cases:
              default: []
              description: >-
                Support cases. Case numbers are minted in order starting at
                00001001.
              items:
                $ref: '#/components/schemas/SalesforceCaseBlueprint'
              type: array
            contacts:
              items:
                $ref: '#/components/schemas/SalesforceContactBlueprint'
              type: array
            leads:
              default: []
              items:
                $ref: '#/components/schemas/SalesforceLeadBlueprint'
              type: array
            opportunities:
              items:
                $ref: '#/components/schemas/SalesforceOpportunityBlueprint'
              type: array
          required:
            - accounts
            - contacts
            - opportunities
          type:
            - object
            - 'null'
        sapS4hana:
          default: null
          description: >-
            The organization's SAP S/4HANA system: the customers it sells to and
            the sales orders in flight.
          properties:
            businessPartners:
              description: >-
                The customers orders are sold to. Business partner numbers are
                minted in order starting at 17100001 — refer to them by key.
              items:
                $ref: '#/components/schemas/SapBusinessPartnerBlueprint'
              type: array
            salesAreas:
              default: []
              description: >-
                Valid sales organization / distribution channel / division
                combinations. Defaults to 1710 / 10 / 00 when empty.
              items:
                $ref: '#/components/schemas/SapSalesAreaBlueprint'
              type: array
            salesOrders:
              description: >-
                Sales orders. Order numbers are minted in order starting at
                7001, so the first order here is 7001 and the second 7002; refer
                to them that way from Linear issues and Slack messages.
              items:
                $ref: '#/components/schemas/SapSalesOrderBlueprint'
              type: array
          required:
            - businessPartners
            - salesOrders
          type:
            - object
            - 'null'
        slack:
          default: null
          description: The organization's Slack workspace.
          properties:
            channels:
              description: 3 to 8 channels. Always include "general".
              items:
                $ref: '#/components/schemas/SlackChannelBlueprint'
              type: array
            messages:
              description: >-
                10 to 40 messages, in chronological order, that tell the story.
                Write `@handle` to mention a person and `#channel-name` to link
                a channel; both are rewritten to Slack's native syntax.
              items:
                $ref: '#/components/schemas/SlackMessageBlueprint'
              type: array
          required:
            - channels
            - messages
          type:
            - object
            - 'null'
      type: object
    Department:
      description: Team or function a person belongs to.
      enum:
        - leadership
        - engineering
        - product
        - design
        - sales
        - customer_success
        - support
        - finance
        - operations
        - marketing
        - legal
        - people
        - it
      type: string
    WorldTaskBlueprint:
      properties:
        checks:
          default: []
          description: >-
            Legacy check definitions. Keep empty on new drafts; author scorers
            instead.
          items:
            $ref: '#/components/schemas/WorldTaskCheck'
          type: array
        expectedOutcome:
          description: Describe the observable final state that earns a passing grade.
          type: string
        instruction:
          description: >-
            Agent-facing goal and constraints. Identify the seeded records by
            their visible names. Do not reveal verifier implementation or claim
            completion.
          type: string
        key:
          description: >-
            Stable lowercase kebab-case key. Preserve it when refining this
            task.
          type: string
        scorers:
          default: []
          description: >-
            Scorers authored with the same request model as POST /v1/scorers.
            Include at least one world-state code scorer for state-changing
            work.
          items:
            $ref: '#/components/schemas/WorldTaskScorerBlueprint'
          type: array
        steps:
          description: >-
            Ordered, actionable instructions to execute in one fresh seeded
            world. Every required final change must have a matching scorer
            below.
          items:
            type: string
          type: array
        title:
          type: string
      required:
        - expectedOutcome
        - instruction
        - key
        - steps
        - title
      type: object
    ScenarioThreadBlueprint:
      properties:
        summary:
          type: string
        title:
          type: string
        touchpoints:
          items:
            $ref: '#/components/schemas/ScenarioTouchpointBlueprint'
          type: array
      required:
        - summary
        - title
        - touchpoints
      type: object
    LinearIssueBlueprint:
      properties:
        assignee:
          default: null
          description: Handle of the assignee, if any.
          type:
            - string
            - 'null'
        comments:
          default: []
          items:
            $ref: '#/components/schemas/LinearCommentBlueprint'
          type: array
        createdAt:
          description: ISO-8601 UTC timestamp.
          type: string
        creator:
          default: null
          description: Handle of the creator; defaults to the API owner.
          type:
            - string
            - 'null'
        description:
          description: >-
            Markdown body. Name related records by their natural identifiers:
            Salesforce opportunity and case subjects, SAP sales order numbers,
            Slack channels.
          type: string
        key:
          description: >-
            Unique key for cross-references inside the blueprint, e.g.
            "rollout-plan".
          type: string
        labels:
          default: []
          description: Label names from the team's labels.
          items:
            type: string
          type: array
        priority:
          description: 'Linear''s scale: 0 none, 1 urgent, 2 high, 3 medium, 4 low.'
          format: uint8
          minimum: 0
          type: integer
        project:
          default: null
          description: Project key, if the issue belongs to a project.
          type:
            - string
            - 'null'
        state:
          $ref: '#/components/schemas/LinearIssueState'
        team:
          description: Team key, e.g. "ENG".
          type: string
        title:
          type: string
        updatedAt:
          default: null
          description: >-
            ISO-8601 UTC timestamp; defaults to the last comment or the creation
            time.
          type:
            - string
            - 'null'
      required:
        - createdAt
        - description
        - key
        - priority
        - state
        - team
        - title
      type: object
    LinearProjectBlueprint:
      properties:
        description:
          type: string
        key:
          description: >-
            Unique key used by issues to point at this project, e.g.
            "unified-crm".
          type: string
        name:
          type: string
        state:
          $ref: '#/components/schemas/LinearProjectState'
      required:
        - description
        - key
        - name
        - state
      type: object
    LinearTeamBlueprint:
      properties:
        description:
          type: string
        key:
          description: >-
            Uppercase team key of 2 to 5 letters, e.g. "ENG". Issue identifiers
            are `KEY-n`.
          type: string
        labels:
          default: []
          description: Extra label names beyond Bug, Feature and Improvement.
          items:
            type: string
          type: array
        members:
          description: Handles of the members.
          items:
            type: string
          type: array
        name:
          type: string
      required:
        - description
        - key
        - members
        - name
      type: object
    SalesforceAccountBlueprint:
      properties:
        accountType:
          $ref: '#/components/schemas/SalesforceAccountType'
        annualRevenue:
          default: null
          description: Annual revenue in whole dollars.
          format: double
          type:
            - number
            - 'null'
        billingCity:
          default: null
          type:
            - string
            - 'null'
        billingState:
          default: null
          description: Two-letter state or region code.
          type:
            - string
            - 'null'
        description:
          description: One sentence about the relationship.
          type: string
        industry:
          type: string
        key:
          description: >-
            Unique key used by contacts, opportunities and cases, e.g.
            "northwind".
          type: string
        name:
          type: string
        numberOfEmployees:
          default: null
          format: uint32
          minimum: 0
          type:
            - integer
            - 'null'
        owner:
          default: null
          description: Handle of the owning identity; defaults to the integration user.
          type:
            - string
            - 'null'
        phone:
          default: null
          type:
            - string
            - 'null'
        website:
          default: null
          type:
            - string
            - 'null'
      required:
        - accountType
        - description
        - industry
        - key
        - name
      type: object
    SalesforceCaseBlueprint:
      properties:
        account:
          description: Key of the account.
          type: string
        contact:
          default: null
          description: Key of the contact who raised it, if known.
          type:
            - string
            - 'null'
        createdAt:
          default: null
          description: >-
            ISO-8601 UTC timestamp the case was opened; defaults to a few days
            before the clock.
          type:
            - string
            - 'null'
        key:
          type: string
        origin:
          $ref: '#/components/schemas/SalesforceCaseOrigin'
        owner:
          default: null
          type:
            - string
            - 'null'
        priority:
          $ref: '#/components/schemas/SalesforceCasePriority'
        status:
          $ref: '#/components/schemas/SalesforceCaseStatus'
        subject:
          description: Case subject line.
          type: string
      required:
        - account
        - key
        - origin
        - priority
        - status
        - subject
      type: object
    SalesforceContactBlueprint:
      properties:
        account:
          description: Key of the account this contact belongs to.
          type: string
        email:
          type: string
        firstName:
          type: string
        key:
          description: Unique key used by cases, e.g. "elena-vasquez".
          type: string
        lastName:
          type: string
        owner:
          default: null
          type:
            - string
            - 'null'
        phone:
          default: null
          type:
            - string
            - 'null'
        title:
          type: string
      required:
        - account
        - email
        - firstName
        - key
        - lastName
        - title
      type: object
    SalesforceLeadBlueprint:
      properties:
        company:
          type: string
        email:
          type: string
        firstName:
          type: string
        key:
          type: string
        lastName:
          type: string
        leadSource:
          $ref: '#/components/schemas/SalesforceLeadSource'
        owner:
          default: null
          type:
            - string
            - 'null'
        status:
          $ref: '#/components/schemas/SalesforceLeadStatus'
      required:
        - company
        - email
        - firstName
        - key
        - lastName
        - leadSource
        - status
      type: object
    SalesforceOpportunityBlueprint:
      properties:
        account:
          description: Key of the account.
          type: string
        amount:
          description: Amount in whole dollars.
          format: double
          type: number
        closeDate:
          description: Expected close date as YYYY-MM-DD.
          type: string
        createdAt:
          default: null
          description: >-
            ISO-8601 UTC creation timestamp; defaults to a few weeks before the
            clock.
          type:
            - string
            - 'null'
        key:
          description: Unique key, e.g. "northwind-expansion".
          type: string
        name:
          description: Opportunity name, e.g. "Northwind — Fleet telemetry pilot".
          type: string
        opportunityType:
          $ref: '#/components/schemas/SalesforceOpportunityType'
        owner:
          default: null
          type:
            - string
            - 'null'
        probability:
          default: null
          description: Win probability 0-100; defaults to the stage's standard value.
          format: uint8
          minimum: 0
          type:
            - integer
            - 'null'
        stage:
          $ref: '#/components/schemas/SalesforceOpportunityStage'
      required:
        - account
        - amount
        - closeDate
        - key
        - name
        - opportunityType
        - stage
      type: object
    SapBusinessPartnerBlueprint:
      properties:
        category:
          $ref: '#/components/schemas/SapPartnerCategory'
        createdAt:
          default: null
          description: ISO-8601 UTC timestamp; defaults to months before the clock.
          type:
            - string
            - 'null'
        firstName:
          default: null
          description: For persons only.
          type:
            - string
            - 'null'
        key:
          description: Unique key used by sales orders, e.g. "northwind".
          type: string
        lastName:
          default: null
          description: For persons only.
          type:
            - string
            - 'null'
        name:
          description: Full name, e.g. "Northwind Logistics Inc".
          type: string
        searchTerm:
          default: null
          description: >-
            Short uppercase search term of at most 20 characters; defaults to a
            derivation of the name.
          type:
            - string
            - 'null'
      required:
        - category
        - key
        - name
      type: object
    SapSalesAreaBlueprint:
      properties:
        distributionChannel:
          description: Two digits, e.g. "10".
          type: string
        division:
          description: Two digits, e.g. "00".
          type: string
        salesOrganization:
          description: Four digits, e.g. "1710".
          type: string
      required:
        - distributionChannel
        - division
        - salesOrganization
      type: object
    SapSalesOrderBlueprint:
      properties:
        createdAt:
          default: null
          description: >-
            ISO-8601 UTC creation timestamp; defaults to a few weeks before the
            clock.
          type:
            - string
            - 'null'
        currency:
          description: ISO currency code, e.g. "USD".
          type: string
        items:
          description: One or more line items.
          items:
            $ref: '#/components/schemas/SapSalesOrderItemBlueprint'
          type: array
        key:
          description: Unique key, e.g. "northwind-q3-restock".
          type: string
        purchaseOrderByCustomer:
          default: null
          description: The customer's own PO number, e.g. "PO-8842".
          type:
            - string
            - 'null'
        requestedDeliveryDate:
          description: Requested delivery date as YYYY-MM-DD.
          type: string
        salesOrganization:
          default: null
          description: >-
            Sales organization of one of the sales areas; defaults to the first
            sales area.
          type:
            - string
            - 'null'
        soldTo:
          description: Key of the sold-to business partner.
          type: string
        status:
          $ref: '#/components/schemas/SapOrderStatus'
      required:
        - currency
        - items
        - key
        - requestedDeliveryDate
        - soldTo
        - status
      type: object
    SlackChannelBlueprint:
      properties:
        createdAt:
          default: null
          description: >-
            ISO-8601 UTC timestamp of channel creation; defaults to well before
            the first message.
          type:
            - string
            - 'null'
        createdBy:
          default: null
          description: >-
            Handle of the identity who created the channel; defaults to the
            first member.
          type:
            - string
            - 'null'
        isArchived:
          default: false
          type: boolean
        isPrivate:
          default: false
          type: boolean
        members:
          default: []
          description: Handles of the members. Leave empty to include every identity.
          items:
            type: string
          type: array
        name:
          description: >-
            Channel name without the '#': lowercase letters, digits and dashes,
            at most 80 characters, e.g. "erp-rollout".
          type: string
        purpose:
          type: string
        topic:
          type: string
      required:
        - name
        - purpose
        - topic
      type: object
    SlackMessageBlueprint:
      properties:
        at:
          description: ISO-8601 UTC timestamp, e.g. "2026-09-01T14:30:00Z".
          type: string
        author:
          description: Handle of the author, or "bot" for the workspace's integration bot.
          type: string
        channel:
          description: Channel name (without '#').
          type: string
        key:
          default: null
          description: >-
            Optional unique key so later messages can reply to this one in a
            thread, e.g. "esc-1".
          type:
            - string
            - 'null'
        reactions:
          default: []
          items:
            $ref: '#/components/schemas/SlackReactionBlueprint'
          type: array
        replyTo:
          default: null
          description: Key of the message this one replies to; makes a thread.
          type:
            - string
            - 'null'
        text:
          description: >-
            Message text. `@handle` and `#channel-name` are rewritten to Slack
            mention syntax.
          type: string
      required:
        - at
        - author
        - channel
        - text
      type: object
    WorldTaskCheck:
      properties:
        description:
          description: >-
            Explain exactly what this check verifies, in language a user
            understands.
          type: string
        expected:
          anyOf:
            - type: string
            - format: double
              type: number
            - type: boolean
            - type: 'null'
          description: >-
            Exact scalar value, or non-empty text for contains. For Linear state
            use backlog/todo/in_progress/in_review/done/canceled. Use
            vendor-native Salesforce enum spelling (e.g. Closed, Closed Won).
        field:
          description: >-
            Native field to check: Slack text, topic.value, purpose.value;
            Linear title, description, priority, state, body; Salesforce
            Subject, Status, Priority, StageName, Amount, Probability, Name; SAP
            PurchaseOrderByCustomer, RequestedDeliveryDate.
          type: string
        key:
          description: Stable lowercase kebab-case key, unique within the task.
          type: string
        operation:
          $ref: '#/components/schemas/WorldTaskOperation'
        operator:
          $ref: '#/components/schemas/WorldTaskCheckOperator'
        recordKey:
          description: >-
            Existing blueprint key. For a new Slack message use its destination
            channel name; for a new Linear Comment use its issue key. Other
            checks name the existing record being changed. Never invent a wire
            ID.
          type: string
        resource:
          description: >-
            Supported resources: Slack message/channel; Linear Issue/Comment;
            Salesforce Case/Opportunity; SAP sales_order.
          type: string
        service:
          $ref: '#/components/schemas/TwinServiceKind'
      required:
        - description
        - expected
        - field
        - key
        - operation
        - operator
        - recordKey
        - resource
        - service
      type: object
    WorldTaskScorerBlueprint:
      description: >-
        A standard library Scorer creation request and its Task verifier
        binding.
      properties:
        key:
          description: Stable lowercase kebab-case key; preserve it through refinements.
          type: string
        passThreshold:
          description: Optional task-specific override; otherwise use scorer.passThreshold.
          format: double
          type:
            - number
            - 'null'
        scorer:
          $ref: '#/components/schemas/CreateScorerRequest'
          description: >-
            Exactly the Scorers API create payload. Generate complete code or
            judge configuration, including its name, description and passing
            threshold.
        weight:
          $ref: '#/components/schemas/BacktestGraderWeight'
          default: med
      required:
        - key
        - scorer
      type: object
    ScenarioTouchpointBlueprint:
      description: One record a thread touches.
      properties:
        key:
          description: >-
            The record's key in that twin's section: a Slack channel name or
            message key, a Linear issue key, a Salesforce account / opportunity
            / case key, or an SAP sales order key.
          type: string
        role:
          description: How the record participates in the thread, in one sentence.
          type: string
        service:
          $ref: '#/components/schemas/TwinServiceKind'
      required:
        - key
        - role
        - service
      type: object
    LinearCommentBlueprint:
      properties:
        at:
          description: ISO-8601 UTC timestamp.
          type: string
        author:
          description: Handle of the author.
          type: string
        body:
          description: Markdown body.
          type: string
      required:
        - at
        - author
        - body
      type: object
    LinearIssueState:
      description: Standard Linear workflow states, one per state type.
      enum:
        - backlog
        - todo
        - in_progress
        - in_review
        - done
        - canceled
      type: string
    LinearProjectState:
      enum:
        - planned
        - started
        - paused
        - completed
        - canceled
      type: string
    SalesforceAccountType:
      enum:
        - prospect
        - customer_direct
        - customer_channel
        - channel_partner
        - other
      type: string
    SalesforceCaseOrigin:
      enum:
        - email
        - phone
        - web
        - chat
      type: string
    SalesforceCasePriority:
      enum:
        - low
        - medium
        - high
        - critical
      type: string
    SalesforceCaseStatus:
      enum:
        - new
        - working
        - escalated
        - closed
      type: string
    SalesforceLeadSource:
      enum:
        - web
        - phone_inquiry
        - partner_referral
        - purchased_list
        - trade_show
        - referral
        - other
      type: string
    SalesforceLeadStatus:
      enum:
        - open_not_contacted
        - working_contacted
        - closed_converted
        - closed_not_converted
      type: string
    SalesforceOpportunityType:
      enum:
        - new_customer
        - existing_customer_upgrade
        - existing_customer_renewal
        - existing_customer_replacement
      type: string
    SalesforceOpportunityStage:
      description: Salesforce's standard sales stages.
      enum:
        - prospecting
        - qualification
        - needs_analysis
        - value_proposition
        - id_decision_makers
        - perception_analysis
        - proposal_price_quote
        - negotiation_review
        - closed_won
        - closed_lost
      type: string
    SapPartnerCategory:
      enum:
        - organization
        - person
      type: string
    SapSalesOrderItemBlueprint:
      properties:
        description:
          description: Item text, e.g. "Trading Good 11, PD, Reg. Trading".
          type: string
        material:
          description: Material number, e.g. "TG11".
          type: string
        netAmount:
          description: Net amount for the whole line in the order's currency.
          format: double
          type: number
        quantity:
          format: double
          type: number
        unit:
          description: Unit of measure, e.g. "PC".
          type: string
      required:
        - description
        - material
        - netAmount
        - quantity
        - unit
      type: object
    SapOrderStatus:
      description: >-
        Where the order is in the SD process: `open` (nothing started),
        `in_process` (partially delivered), `completed` (fully delivered).
      enum:
        - open
        - in_process
        - completed
      type: string
    SlackReactionBlueprint:
      properties:
        by:
          description: Handles of the people who reacted.
          items:
            type: string
          type: array
        name:
          description: Emoji short name without colons, e.g. "white_check_mark".
          type: string
      required:
        - by
        - name
      type: object
    WorldTaskOperation:
      enum:
        - create
        - update
        - delete
      type: string
    WorldTaskCheckOperator:
      enum:
        - equals
        - contains
        - exists
      type: string
    TwinServiceKind:
      description: The twin services Worldsmith can forge.
      enum:
        - slack
        - linear
        - salesforce
        - sap_s4hana
      type: string
    CreateScorerRequest:
      properties:
        allowSkip:
          default: false
          type: boolean
        choiceScores:
          default: []
          items:
            $ref: '#/components/schemas/ScorerChoice'
          type: array
        code:
          type:
            - string
            - 'null'
        description:
          type:
            - string
            - 'null'
        kind:
          $ref: '#/components/schemas/ScorerKind'
          default: llm-judge
        language:
          description: >-
            Language of a code scorer. Handlers run inside the trial's trusted
            verifier sandbox: Python via `python3`, TypeScript via `node` (>=
            22.6, type-stripping) — both shipped in the sandbox runtime image.
          enum:
            - python
            - typescript
          type:
            - string
            - 'null'
        model:
          type:
            - string
            - 'null'
        name:
          type: string
        passThreshold:
          format: double
          type:
            - number
            - 'null'
        prompt:
          type:
            - string
            - 'null'
        slug:
          description: Optional explicit slug; derived from `name` when omitted.
          type:
            - string
            - 'null'
        useCot:
          default: false
          type: boolean
      required:
        - name
      type: object
    BacktestGraderWeight:
      description: >-
        Grader weight bucket — `low | med | high` matches the segmented control
        in the GraderBuilder tray.
      enum:
        - low
        - med
        - high
      type: string
    ScorerChoice:
      description: >-
        One judge choice mapped to a numeric score, e.g. `A → 1.0`, `B → 0.5`,
        `C → 0.0`. When a judge scorer declares choices, the model must pick
        exactly one and the mapped score is the result.
      properties:
        label:
          type: string
        score:
          format: double
          type: number
      required:
        - label
        - score
      type: object
    ScorerKind:
      description: How the scorer is executed.
      enum:
        - llm-judge
        - code
      type: string
  responses:
    BadRequest:
      description: Invalid blueprint, cursor, or idempotency key format.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
        text/plain:
          schema:
            type: string
    Unauthorized:
      description: Missing or invalid API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    NotFound:
      description: No world with this ID in your organization.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    Conflict:
      description: The idempotency key was reused with different inputs.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    InternalError:
      description: >-
        Chronicle could not complete the request. Retry, and quote the request
        ID if it persists.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    Unavailable:
      description: Evaluation services are not enabled on this deployment.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
  securitySchemes:
    ApiKey:
      type: http
      scheme: bearer
      bearerFormat: API key
      description: Your Chronicle API key (chr_...). Create one in Settings > API keys.

````