Field Types
mashinTalk fields are typed. Types are used in provides inputs, provides outputs, and stores resource definitions.
Primitive Types
| 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 |
Composite Types
| 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 |
Field Modifiers
| 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" |