{
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "https://schema.twindev.org/w3c-activity-streams/ActivityStreamsActivity",
    "title": "ActivityStreamsActivity",
    "description": "A W3C Activity from Activity Streams.\n\nAn `Activity` describes an action performed by an `actor` on an `object`, and\ncan optionally include a `target`, `result`, `origin`, or `instrument`.",
    "type": "object",
    "properties": {
        "@context": {
            "$ref": "https://schema.twindev.org/w3c-activity-streams/ActivityStreamsContextType",
            "description": "The LD Context."
        },
        "type": {
            "anyOf": [
                {
                    "$ref": "https://schema.twindev.org/w3c-activity-streams/ActivityStreamsTypes"
                },
                {
                    "type": "string"
                },
                {
                    "type": "array",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "https://schema.twindev.org/w3c-activity-streams/ActivityStreamsTypes"
                            },
                            {
                                "type": "string"
                            }
                        ]
                    }
                }
            ],
            "description": "Activity Type."
        },
        "generator": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "$ref": "https://schema.twindev.org/json-ld/JsonLdNodeObject"
                },
                {
                    "type": "array",
                    "items": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "$ref": "https://schema.twindev.org/json-ld/JsonLdNodeObject"
                            }
                        ]
                    }
                }
            ],
            "description": "The generator of the Activity."
        },
        "actor": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "$ref": "https://schema.twindev.org/json-ld/JsonLdNodeObject"
                },
                {
                    "type": "array",
                    "items": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "$ref": "https://schema.twindev.org/json-ld/JsonLdNodeObject"
                            }
                        ]
                    }
                }
            ],
            "description": "The Actor behind the Activity."
        },
        "object": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "$ref": "https://schema.twindev.org/json-ld/JsonLdNodeObject"
                },
                {
                    "type": "array",
                    "items": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "$ref": "https://schema.twindev.org/json-ld/JsonLdNodeObject"
                            }
                        ]
                    }
                }
            ],
            "description": "The object affected by the Activity."
        },
        "target": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "$ref": "https://schema.twindev.org/json-ld/JsonLdNodeObject"
                },
                {
                    "type": "array",
                    "items": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "$ref": "https://schema.twindev.org/json-ld/JsonLdNodeObject"
                            }
                        ]
                    }
                }
            ],
            "description": "The target of the Activity."
        },
        "summary": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
                }
            ],
            "description": "Summary of the Activity."
        },
        "result": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "$ref": "https://schema.twindev.org/json-ld/JsonLdNodeObject"
                },
                {
                    "type": "array",
                    "items": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "$ref": "https://schema.twindev.org/json-ld/JsonLdNodeObject"
                            }
                        ]
                    }
                }
            ],
            "description": "Result of the Activity."
        },
        "origin": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "$ref": "https://schema.twindev.org/json-ld/JsonLdNodeObject"
                },
                {
                    "type": "array",
                    "items": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "$ref": "https://schema.twindev.org/json-ld/JsonLdNodeObject"
                            }
                        ]
                    }
                }
            ],
            "description": "Activity's origin."
        },
        "instrument": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "$ref": "https://schema.twindev.org/json-ld/JsonLdNodeObject"
                },
                {
                    "type": "array",
                    "items": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "$ref": "https://schema.twindev.org/json-ld/JsonLdNodeObject"
                            }
                        ]
                    }
                }
            ],
            "description": "Instrument used in the Activity."
        }
    },
    "required": [
        "@context",
        "type"
    ],
    "allOf": [
        {
            "$ref": "https://schema.twindev.org/w3c-activity-streams/ActivityStreamsObject"
        }
    ]
}
