{
    "info": {
        "description": "External API for map data.",
        "title": "Talque Map API",
        "version": "1.0.0"
    },
    "paths": {
        "/api/v1/map/marker/list": {
            "post": {
                "summary": "List map markers in an organization",
                "description": "Returns map markers in the organization with optional pagination.",
                "parameters": [
                    {
                        "name": "X-TQ-CLIENT-ID",
                        "in": "header",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "The API client ID for authentication."
                    },
                    {
                        "name": "X-TQ-SECRET",
                        "in": "header",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "The API client secret for authentication."
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "orgId": {
                                        "type": "string",
                                        "description": "The unique identifier of the organization."
                                    },
                                    "limit": {
                                        "type": "integer",
                                        "description": "Maximum number of map markers to return."
                                    },
                                    "cursor": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "description": "Pagination cursor from a previous response."
                                    }
                                },
                                "required": [
                                    "orgId"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "List of map markers",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "orgId": {
                                            "type": "string",
                                            "description": "The unique identifier of the organization."
                                        },
                                        "mapMarkers": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "mapMarkerId": {
                                                        "type": "string",
                                                        "description": "The unique identifier of the map marker."
                                                    },
                                                    "mtime": {
                                                        "type": "integer",
                                                        "description": "Last modification time (milliseconds since epoch)."
                                                    },
                                                    "name": {
                                                        "type": "object",
                                                        "description": "Translated name of the map marker."
                                                    },
                                                    "icon": {
                                                        "type": "string",
                                                        "description": "Icon identifier for the map marker."
                                                    },
                                                    "priority": {
                                                        "type": "string",
                                                        "description": "Priority level of the map marker."
                                                    },
                                                    "taxonomy": {
                                                        "type": "string",
                                                        "description": "Taxonomy category of the map marker."
                                                    },
                                                    "extraColorId": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "description": "Optional extra color identifier."
                                                    },
                                                    "extId": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "description": "Optional external identifier."
                                                    }
                                                }
                                            },
                                            "description": "Map markers in the organization."
                                        },
                                        "cursor": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Pagination cursor for the next page."
                                        },
                                        "more": {
                                            "type": "boolean",
                                            "description": "Whether there are more map markers to fetch."
                                        }
                                    },
                                    "required": [
                                        "orgId",
                                        "mapMarkers",
                                        "more"
                                    ]
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request (e.g., missing or invalid fields)"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Organization not found"
                    }
                }
            }
        },
        "/api/v1/org/{orgId}/map/layer/geojson": {
            "get": {
                "summary": "Get map layer as GeoJSON",
                "description": "Returns map features as GeoJSON FeatureCollection.",
                "parameters": [
                    {
                        "name": "orgId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "The unique identifier of the organization."
                    },
                    {
                        "name": "layerId",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Optional map layer ID to filter features."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "GeoJSON FeatureCollection",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "type": {
                                            "type": "string",
                                            "enum": [
                                                "FeatureCollection"
                                            ],
                                            "description": "GeoJSON object type."
                                        },
                                        "features": {
                                            "type": "array",
                                            "description": "Array of GeoJSON Feature objects.",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "required": [
                                        "type",
                                        "features"
                                    ]
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request (e.g., invalid org ID)"
                    },
                    "404": {
                        "description": "Organization not found"
                    }
                }
            }
        }
    },
    "openapi": "3.0.3"
}