FishTea
Documentation

Spec reference

Generated from packages/spec/schema/spec.schema.json at build time, so it cannot drift from what the loader actually accepts. Spec format 1.1.

Sections

A spec is one JSON object. Each top-level key is a section with its own version, and every section is content-hashed so the console and the engine can tell exactly what changed.

fishtea required

business required

fieldtypenotes
id requiredstring
name requiredstring
localestring
currencystring

entities required

Every key other than version and doc is one entity definition.

calls required

Every key other than version and doc is one call definition.

rules required

fieldtypenotes
writesobject
classifyobject
callsobject
familiarityobject

shapes required

Every key other than version and doc is one shape definition.

personas required

Every key other than version and doc is one object definition.

envelope required

fieldtypenotes
accept requiredstring[]
greeting requiredmap of object

notifications optional

Every key other than version and doc is one object definition.

operator optional

fieldtypenotes
shapesmap of shape

plugins optional

Every key other than version and doc is one pluginUse definition.

Definitions

version

typeString

typeSpec

entity

fieldtypenotes
fields requiredmap of typeSpec
indexstring[]
embedstring[]
uniquestring[]

call

fieldtypenotes
kind requiredquery | mutation | compute | external
in requiredmap of typeSpec
out requiredtypeSpec
impl requiredobject
transactionboolean

step

fieldtypenotes
idstring
call requiredstring
withobject
afterstring[]

next

fieldtypenotes
labelstring
shape requiredstring
argsobject
eachstring

shape

fieldtypenotes
asks requiredstring
input requiredmap of typeSpec
answer requiredtypeSpec
effect requiredread | write
allow requiredstring[]
planstep[]
assembleany
phrasestring
vessellist | card | detail | compare | timeline | confirm
nextnext[]
triggersstring[]

pluginUse

fieldtypenotes
use requiredstringwhere the plugin comes from: a bare name (builtin or plugins/<name>), a relative path, or an npm package
kindintegration | ui | auth | classifier | channel | archetype
configobjectanswers to the plugin's own configuration questions
enabledboolean