mashinTalk fields are typed. Types are used in provides inputs, provides outputs, and stores resource definitions.
| Type |
Description |
Example |
string |
Text value |
name: string |
text |
Alias for string |
description: text |
number |
Numeric (integer or float) |
count: number |
integer |
Whole number |
age: integer |
float |
Floating point |
score: float |
decimal |
Precise decimal |
price: decimal |
boolean |
True or false |
active: boolean |
uuid |
UUID identifier |
id: uuid |
date |
Calendar date |
birthday: date |
datetime |
Date and time (UTC) |
created_at: datetime |
| Type |
Description |
Example |
enum("a", "b", "c") |
One of a fixed set of values |
status: enum("draft", "active", "archived") |
list(type) |
List of values |
tags: list(string) |
map |
Key-value map |
metadata: map |
any |
Any type |
data: any |
| Modifier |
Description |
Example |
required |
Field must be provided |
name: string, required |
default: value |
Default if not provided |
count: integer, default: 0 |
primary_key |
Primary key (stores only) |
id: uuid, primary_key |
column: "name" |
Map to database column (external stores) |
ext_id: string, column: "external_id" |