{ "id": "chat-core", "title": "Chat Core", "type": "library", "tier": "starlark", "version": "0.2.0", "description": "Core chat library — conversations, messages, participants, read cursors. Usable by other packages via lib.require().", "author": "switchboard", "permissions": ["db.write", "realtime.publish"], "exports": [ "create", "send", "history", "add_participant", "remove_participant", "mark_read" ], "api_routes": [ {"method": "GET", "path": "/conversations"}, {"method": "POST", "path": "/conversations"}, {"method": "GET", "path": "/conversations/*"}, {"method": "PUT", "path": "/conversations/*"}, {"method": "DELETE", "path": "/conversations/*"}, {"method": "GET", "path": "/messages/*"}, {"method": "POST", "path": "/messages/*"}, {"method": "PUT", "path": "/messages/*"}, {"method": "DELETE", "path": "/messages/*"}, {"method": "GET", "path": "/participants/*"}, {"method": "POST", "path": "/participants/*"}, {"method": "DELETE", "path": "/participants/*"}, {"method": "POST", "path": "/read/*"}, {"method": "GET", "path": "/search"}, {"method": "GET", "path": "/unread"} ], "db_tables": { "conversations": { "columns": { "title": "text", "type": "text", "created_by": "text", "updated_at": "text" }, "indexes": [["created_by"], ["updated_at"]] }, "participants": { "columns": { "conversation_id": "text", "participant_id": "text", "participant_type": "text", "display_name": "text", "role": "text", "joined_at": "text" }, "indexes": [ ["conversation_id"], ["participant_id"], ["conversation_id", "participant_id"] ] }, "messages": { "columns": { "conversation_id": "text", "participant_id": "text", "content": "text", "content_type": "text", "edited_at": "text" }, "indexes": [["conversation_id"]] }, "read_cursors": { "columns": { "conversation_id": "text", "participant_id": "text", "last_read_message_id": "text" }, "indexes": [["conversation_id", "participant_id"]] } }, "schema_version": 1 }