StillMade AIDeveloper docs
Browse documentation · SDK 0.1.0

Port fields

Every field an input or output port may declare, generated from the SDK validator.

Port fields

Each input and output is a named port (a lowercase letter, then letters, numbers or underscores). Admission rejects any other field.

FieldMeaning
typeRequired. A shared StillMade type such as text, image, shot-plan; add [] for a list (image[]).
requiredRequired on every input of a new Block: true or false. A required input needs a generated control, a context binding or a default, or pack and import reject it.
defaultA JSON value matching the type. Satisfies a required input when nothing else supplies it.
minLowest allowed value for a number or integer port.
maxHighest allowed value for a number or integer port.
descriptionRequired on every input and output of a new Block. One short plain-language sentence about what the value is for.
roleLegacy distinct role (for example character_reference). Use only when the meaning must not mix with others; downstream roles must match exactly. Prefer semantic.
primaryMark exactly one main input and one main output true; Project Type Steps connect primary ports automatically.
contextThe project field this input reads (for example script); requires the matching context.FIELD.read permission.
imageModeJavaScript image inputs only: pixels delivers decoded {width,height,data}; reference delivers the media reference without pixels.
keySet by the host for resolver requirements. Leave unset in manifests.
semanticRequired on every input and output of a new Block. The exact meaning in lowercase snake_case or dotted form (company_profile, production_shot_plan). Downstream matching uses it; different meanings never connect.
acceptsAdditional meanings this input also accepts, besides its own semantic.
schemaRequired on every json or object port (admission rejects one without it). Not JSON Schema: a field-type word or a map of field names to field-type words, nested for objects. Words are string, text, number, integer, boolean, object, json; add [] for a list and ? for an optional field, for example {title:"string",tags:"string[]?",size:{width:"integer",height:"integer"}}.
sourcesWhere the universal resolver may fill this input from: upstream, project, adapter, chat, default, user, external. Omit to allow all. default covers only the declared default; values a person enters in the Step or a view passes to StillMade.run count as user, so leave user allowed for anything the interface fills in.
sensitivityA label for sensitive information; values marked secret, credential, password or token are never offered in chat.
freshnessPolicy{maxAgeMs}: the resolver rejects values older than this.
cardinalityone or many values.
batchabletrue when the input can run once per item of a selected media batch.