# Hammock Hotel Project - machine surfaces

> The read surfaces only. Keyless, open CORS, JSON, one resolver shared with the pages. Nothing here can join, cancel or change anything.

## Endpoints

- [OpenAPI](https://hammockproject.dumaguete.uk/openapi.json): every summary is the question the call answers
- [Where it is now](https://hammockproject.dumaguete.uk/v1/now): current and next spot, hammocks free, checked_at
- [Every published night](https://hammockproject.dumaguete.uk/v1/nights): current and upcoming; passed nights are never listed
- [Search](https://hammockproject.dumaguete.uk/v1/search?q=what+to+bring): the page that answers, best first
- [MCP](https://hammockproject.dumaguete.uk/.well-known/mcp-server-card): POST https://hammockproject.dumaguete.uk/mcp â€” 2026-07-28, 2025-11-25, 2025-06-18
- [A2A](https://hammockproject.dumaguete.uk/.well-known/agent-card.json): POST https://hammockproject.dumaguete.uk/a2a, JSON-RPC, A2A-Version: 1.0
- [Status](https://hammockproject.dumaguete.uk/status.json): distinguishes down from does-not-exist

## Rules

- [Fields](https://hammockproject.dumaguete.uk/llms-full.txt#fields): no coordinates in any field, ever; hammocks_free is live; checked_at says when it was true
