One logical step, stable boundaries.
Simple steps remain compact. Multi-line calculations, JSON payloads, and long comment steps are preserved when FileMaker developers actually use them.
`.fmscript` is a readable, deterministic representation of FileMaker scripts. It gives humans, IDEs, plugins, and AI agents one shared language for script logic that can round-trip back into FileMaker.
FileMaker developers need one textual grammar that tools can share. `.fmscript` is the neutral bridge: terse enough for humans, strict enough for compilers, and explicit enough for AI agents.
Simple steps remain compact. Multi-line calculations, JSON payloads, and long comment steps are preserved when FileMaker developers actually use them.
The grammar preserves FileMaker's real naming, parameters, spacing quirks, and bracket forms instead of inventing a prettier language that cannot paste back.
Editors, plugins, model agents, documentation systems, and deployment tools can all target the same `.fmscript` surface without depending on ai2fm.
AI can already write useful FileMaker logic when it has a strict target. `.fmscript` gives agents a compact grammar and gives developers something they can inspect before it enters the Script Workspace.
// and /* */ comments inside calculation bodies.# Generated text remains inspectable before it touches FileMaker.
Set Variable [ $cutoff ; Value: Get ( CurrentDate ) - 30 ]
Go to Layout [ "Invoices" (Invoices) ]
Enter Find Mode [ Pause: Off ]
Set Field [ Invoices::DueDate ; "<" & $cutoff ]
Set Field [ Invoices::Paid ; "No" ]
Perform Find
If [ Get ( FoundCount ) > 0 ]
Perform Script [ Specified:From list; "Queue Collections"; Parameter: Get ( FoundCount ) ]
End If
The standard is intended for the whole FileMaker ecosystem. Tool authors can use `.fmscript` as a textual export target, import target, or AI instruction format.
Reserved for FileMaker plugin vendors that align text export with the `.fmscript` grammar.
Syntax highlighting, snippets, diagnostics, folding, and language server support can all share one canonical grammar.
AI systems can target `.fmscript` directly, then let deterministic tooling validate and convert the result.
The first published spec captures the core rules: brackets, semicolons, field references, variables, comments, disabled steps, multi-line calculation bodies, and comment continuation.
# Correct Set Field [ Customers::FirstName ; "Ada" ] Set Variable [ $name ; Value: Customers::FirstName ] Perform Script [ Specified:From list; "Normalize Customer"; Parameter: $name ] # Correct: inline comments inside calculation bodies Set Variable [ $payload ; Value: JSONSetElement ( "{}" ; [ "customer" ; Customers::Name ; JSONString ] ; // visible to the developer [ "active" ; 1 ; JSONBoolean ] /* FileMaker accepts this */ ) ] # Incorrect Set Field Customers::FirstName = "Ada" Set Variable $name = Customers::FirstName Perform Script "Normalize Customer"