{
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "https://schema.twindev.org/w3c-activity-streams/ActivityStreamsObject",
    "title": "ActivityStreamsObject",
    "description": "A W3C Activity Streams Object.\n\nThis is the base type for most ActivityStreams entities. It supports natural language\nvalues (e.g. `name`, `summary`, `content`) as either plain strings or language maps.",
    "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/ActivityStreamsObjectTypes"
                },
                {
                    "type": "string"
                },
                {
                    "type": "array",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "https://schema.twindev.org/w3c-activity-streams/ActivityStreamsObjectTypes"
                            },
                            {
                                "type": "string"
                            }
                        ]
                    }
                }
            ],
            "description": "Object type.\n\nThe value can be a single type or an array of types."
        },
        "id": {
            "type": "string",
            "description": "Global identifier.",
            "format": "uri"
        },
        "name": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
                }
            ],
            "description": "Natural language name."
        },
        "nameMap": {
            "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap",
            "description": "Natural language name map."
        },
        "summary": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
                }
            ],
            "description": "Natural language summary."
        },
        "summaryMap": {
            "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap",
            "description": "Natural language summary map."
        },
        "content": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
                }
            ],
            "description": "Natural language content."
        },
        "contentMap": {
            "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap",
            "description": "Natural language content map."
        },
        "url": {
            "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": "A link to the representation of the object.\n\nThe value can be a URI or an embedded node object."
        },
        "image": {
            "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": "A graphical representation of the object.\n\nThe value can be a URI or an embedded `Image`/`Link` object."
        },
        "icon": {
            "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": "An icon for the object.\n\nThe value can be a URI or an embedded `Image`/`Link` object."
        },
        "published": {
            "type": "string",
            "description": "Published date-time.",
            "format": "date-time"
        },
        "updated": {
            "type": "string",
            "description": "Updated date-time.",
            "format": "date-time"
        },
        "startTime": {
            "type": "string",
            "description": "Start time.",
            "format": "date-time"
        },
        "endTime": {
            "type": "string",
            "description": "End time.",
            "format": "date-time"
        },
        "duration": {
            "type": "string",
            "description": "Duration.",
            "format": "duration"
        },
        "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 object."
        },
        "attachment": {
            "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": "Attachments."
        },
        "attributedTo": {
            "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": "Objects attributed to."
        },
        "audience": {
            "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": "Audience."
        },
        "context": {
            "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": "Context."
        },
        "location": {
            "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": "Location."
        },
        "tag": {
            "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": "Tag."
        },
        "inReplyTo": {
            "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": "In reply to."
        },
        "replies": {
            "$ref": "https://schema.twindev.org/json-ld/JsonLdNodeObject",
            "description": "Replies collection.\n\nTypically an embedded `Collection` of Objects that are replies to this object."
        },
        "preview": {
            "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": "Preview."
        },
        "to": {
            "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": "To."
        },
        "bto": {
            "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": "BTo."
        },
        "cc": {
            "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": "CC."
        },
        "bcc": {
            "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": "BCC."
        },
        "mediaType": {
            "type": "string",
            "description": "MIME media type of the referenced resource."
        }
    },
    "required": [
        "@context"
    ]
}
