Visca
The Stack/Lifecycle plane

Data model

Cast

The data-model layer of the self-hosted stack.

The data-model primitive of the stack, run inside your perimeter. Declare what should exist as versioned source; agents write it as source, humans edit it as a spreadsheet. Plan, apply, drift-detect — all against state that stays in your tenancy.

Cast is a primitive of the Visca stack — it ships with the stack, versions with the stack, and audits with the stack. It is not separately purchasable.

What it is

The role Cast plays in the stack.

Cast is the declarative primitive of the stack. Describe what should exist — object types, fields, relations, views, workflows, roles, permissions, applications — in versioned source. Cast diffs against current state and reconciles safely, in dependency order. Two surfaces, one substrate: coding agents author Cast as source; humans edit the same state in a spreadsheet view — object types are sheets, fields are columns, records are rows, relations are typed cells. Both write to one truth, inside your own walls, under the same Sigil identity and recorded to the same Chronicle as every other layer.

The problem

What goes wrong without it.

Data models are defined imperatively, in pieces — object types in one console, fields in a UI, relations in a third tool, workflows in a fourth, each a separate vendor or project. Humans get a UI, agents get nothing, neither sees the same truth. State drifts the moment it runs. No review, no diff, no rollback, no single source for what should exist — and the schema that defines your most sensitive data ends up living in someone else's cloud.

Capabilities

What Cast does.

Two surfaces, one model

What Cast looks like in code.

# What a coding agent sees — Cast source
# (mirrors sheets' ObjectMetadata, FieldMetadata, ViewEntity 1:1)

object "task" {
  label_singular   = "Task"
  label_plural     = "Tasks"
  icon             = "IconCheckbox"
  is_searchable    = true
  label_identifier = field.task.title
}

field "title" {
  object = object.task
  type   = "TEXT"
  label  = "Title"
  icon   = "IconNotes"
}

field "status" {
  object        = object.task
  type          = "SELECT"
  label         = "Status"
  default_value = "TODO"
  options = [
    { value = "TODO",        label = "To do",       color = "sky"    },
    { value = "IN_PROGRESS", label = "In progress", color = "purple" },
    { value = "DONE",        label = "Done",        color = "green"  },
  ]
}

field "assignee" {
  object = object.task
  type   = "RELATION"
  label  = "Assignee"
  icon   = "IconUserCircle"
  relation = {
    type          = "MANY_TO_ONE"
    target_object = object.organizationMember
    target_field  = "assignedTasks"
    on_delete     = "SET_NULL"
  }
}

view "byStatus" {
  object              = object.task
  type                = "KANBAN"
  name                = "By Status"
  main_group_by_field = field.task.status
}


# What a human sees — the same model, in a sheet

  │ title                    │ status        │ assignee │
  ───────────────────────────────────────────────────────
  │ Wire up Cast parser      │ IN_PROGRESS   │ @sasha   │
  │ Drift detector design    │ TODO          │ @rajan   │
  │ Bundle signer review     │ DONE          │ @priya   │

Open and commercial

Built in the open. Run in your tenancy.

Cast has two surfaces: an open-source reference in Lattice Runtime (MPL 2.0), and a managed delivery as part of the Visca stack on Visca Cloud. Features in the open never move behind the paywall.

Open

Lattice Runtime — open foundation

MPL 2.0 · self-hostable · foundation-track governance

  • ·Cast language specification
  • ·Reference CLI
  • ·Local state backend (Postgres-backed)
  • ·Plan / diff / apply against local Lattice Runtime
  • ·Reference controllers for object, field, relation, view, workflow, role, application

Commercial

Visca Cloud — managed sovereign delivery

Your tenancy · dedicated · self-managed · air-gapped

  • ·Hosted state backend with row-level locking
  • ·RBAC on plans and applies
  • ·Drift remediation workflows
  • ·Audit-grade plan retention
  • ·Schema migration and versioning workflows
  • ·Premium standard schemas for regulated industries

LIFECYCLE · same plane

Inside the lifecycle plane with Cast

Across the stack

Composing with the other planes.

The whole stack. Self-hosted. One ecosystem.

The entire agent stack, inside your own walls.

Models, identity, tools, voice, payments, runtime, and audit — as one integrated ecosystem, self-hosted, sovereign, air-gapped. Nothing stitched from vendors. Nothing leaves your perimeter. Open at the core. No license rug-pulls, ever.