{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://api-evangelist.github.io/redux/json-schema/redux-action-schema.json", "title": "Redux Action", "description": "Schema for a Redux action object. Actions are plain JavaScript objects that represent an intention to change the state. Every action must have a type field.", "type": "object", "required": ["type"], "properties": { "type": { "description": "A string constant identifying the kind of action being performed. By convention written in SCREAMING_SNAKE_CASE.", "type": "string", "examples": [ "INCREMENT", "USER_FETCH_SUCCEEDED", "todos/addTodo", "counter/increment" ] }, "payload": { "description": "Any data that accompanies the action. Follows the Flux Standard Action convention.", "oneOf": [ {"type": "string"}, {"type": "number"}, {"type": "boolean"}, {"type": "object"}, {"type": "array"}, {"type": "null"} ] }, "error": { "description": "When true, the payload is treated as an error object. Follows the Flux Standard Action convention.", "type": "boolean", "default": false }, "meta": { "description": "Extra information that is not part of the payload. Follows the Flux Standard Action convention.", "type": "object", "additionalProperties": true } }, "additionalProperties": false, "examples": [ { "type": "INCREMENT" }, { "type": "todos/addTodo", "payload": { "id": 1, "text": "Buy milk", "completed": false } }, { "type": "USER_FETCH_FAILED", "payload": { "message": "Network request failed" }, "error": true } ] }