Packages

Generic Elixir models and portable validation for RelayMark documents and manifests

Current section

Files

Jump to
relay_mark_elixir priv relaymark directives relay.form_question.json
Raw

priv/relaymark/directives/relay.form_question.json

{
"$schema": "../schemas/relaymark-directive.schema.json",
"name": "FormQuestion",
"ast_type": "relay.form_question",
"version": 1,
"category": "form",
"description": "A form question embedded in a RelayMark document.",
"attributes": {
"key": {
"type": "string",
"required": true,
"description": "Stable response key."
},
"label": {
"type": "string",
"required": true,
"description": "Question label shown to respondents."
},
"field_type": {
"type": "enum",
"required": true,
"values": ["short_text", "long_text", "single_select", "multi_select", "number", "date", "entity_ref", "file"]
},
"required": {
"type": "boolean",
"default": false
},
"options": {
"type": "array",
"items": "string",
"description": "Allowed options for select fields."
},
"visibility": {
"type": "enum",
"values": ["private", "org", "unlisted", "public"],
"default": "private"
}
},
"children": {
"mode": "mixed",
"allowed_types": ["paragraph", "text"],
"min": 0
},
"validation": [
"key must be unique within the compiled form manifest",
"select fields should define at least one option",
"field_type must map to a host-supported form response type"
],
"projections": {
"relay_kit": "FormQuestion",
"html": "form-question",
"plain_text": "question label and helper text",
"manifest": ["forms"]
},
"policy": {
"requires_review": false,
"requires_evidence": false,
"allows_agent_creation": true,
"visibility_attribute": "visibility"
}
}