Verification level

HTTP contract only; no simulator startup required. Liveness, readiness, discovery, capabilities, and OpenAPI do not open the FastSim application. A fresh server reports HTTP 200 with status: ready, application_opened: false, and accepting_work: true: it can accept the first Run request without pre-opening the simulator.

Run it

Terminal A:

bash
cd demo/server/01_discovery_and_capabilities
fastsim config validate run.yaml --json
fastsim-server run.yaml

Terminal B:

bash
cd demo/server/01_discovery_and_capabilities
python main.py

The client prints /health/live, /health/ready, /api/v1, /api/v1/capabilities, and the number of paths in OpenAPI. It does not start or stop the Run. A capability marked false must be treated as unavailable; clients should never infer support from a route name alone.

Things to notice

  • Liveness means the HTTP process responds; readiness means the application accepts Run work. Readiness does not mean that the simulator has already opened.
  • Discovery publishes hard request, response, query, operation, and binary limits.
  • OpenAPI is machine-readable and uses the same authentication boundary as all other routes.
  • Planning reads remain false because terminal A did not use --planning-reads.

Next: 02 — Lifecycle.