{"ok":true,"service":"flowdrop-socket-server","socketPath":"/socket.io","routes":[{"method":"GET","path":"/","name":"Status page","access":"public","description":"Browser dashboard for confirming the socket server is active."},{"method":"GET","path":"/health","name":"Health check","access":"public","description":"Machine-readable uptime, environment, and connected socket count."},{"method":"GET","path":"/routes","name":"Route inventory","access":"public","description":"Machine-readable list of HTTP routes and socket events."},{"method":"POST","path":"/events","name":"Publish event","access":"internal key","description":"Publish a typed realtime event to calculated rooms."},{"method":"POST","path":"/events/order-updated","name":"Publish order update","access":"internal key","description":"Publish order.updated using the order event route."},{"method":"POST","path":"/events/payment","name":"Publish payment update","access":"internal key","description":"Publish payment.updated events."},{"method":"POST","path":"/events/cash-collection","name":"Publish cash collection update","access":"internal key","description":"Publish cash.collection.updated events."},{"method":"POST","path":"/events/rider-location","name":"Publish rider location update","access":"internal key","description":"Publish rider.location.updated events."},{"method":"POST","path":"/events/notification","name":"Publish notification","access":"internal key","description":"Publish notification.created events."},{"method":"POST","path":"/tokens/development","name":"Development auth token","access":"disabled","description":"Create signed test tokens outside production."},{"method":"WS","path":"/socket.io","name":"Socket.IO transport","access":"signed auth token","description":"Realtime websocket and polling transport endpoint."}],"socketEvents":[{"direction":"server -> client","event":"socket:ready","description":"Sent after a socket connects and joins its base rooms."},{"direction":"client -> server","event":"order:watch","description":"Join an order room when the socket is allowed to watch it."},{"direction":"client -> server","event":"order:unwatch","description":"Leave an order room."},{"direction":"server -> client","event":"order:created, order:updated, order:assigned, order:status-updated, order.deleted","description":"Delivery order lifecycle events."},{"direction":"server -> client","event":"payment:updated, payment.deleted, cash-collection:updated","description":"Payment and cash collection events."},{"direction":"server -> client","event":"rider:location-updated, notification:created","description":"Live GPS and notification events."}]}