> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sesameterminal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Architecture decision records

# Architecture decision records

Each record explains one architecture decision: its context, the decision, its
consequences and the alternatives considered. The plan that these decisions serve is
[docs/PLAN.md](../PLAN.md).

| # | Decision | Status |
| - | - | - |
| [0001](0001-actors-and-event-bus.md) | Actors and a typed event bus in the backend | Accepted |
| [0002](0002-openapi-contract-and-codegen.md) | OpenAPI 3.0.3 contract with generated Go and TypeScript code | Accepted |
| [0003](0003-sqlite-with-pure-go-driver.md) | SQLite with the pure-Go modernc.org/sqlite driver | Accepted |
| [0004](0004-venue-capability-boundary.md) | Venue boundary with capability interfaces | Accepted |
| [0005](0005-no-geoblock-workarounds.md) | No geoblock workarounds; trading follows the geoblock check | Accepted |
| [0006](0006-game-state-seeded-snapshot.md) | Game state: seeded once from Gamma, then updated by the Sports WS | Accepted |
| [0007](0007-prices-only-from-market-feed.md) | Every displayed price comes from the market feed | Accepted |
| [0008](0008-public-health-authenticated-status.md) | Public health check, authenticated status | Accepted |
| [0009](0009-venue-credentials-in-memory.md) | Venue API credentials are derived at startup and held in memory | Proposed |
| [0010](0010-go-ethereum-for-signing.md) | Keep go-ethereum for EIP-712 and secp256k1 signing | Proposed |
| [0011](0011-audit-first-order-path.md) | Audit-first order path: sign, record the signed order, then send once; no automatic re-send | Proposed |
| [0012](0012-session-key-scope.md) | A Session Key is not trade-only on-chain; the relayer is the only barrier | Proposed |
| [0013](0013-working-balance-cap.md) | Working balance: $50 cap for live verification, then $100k–\$500k after the gate 5 decision | Proposed (the user decides both stages) |
| [0014](0014-combos-requester-api.md) | Combos go through the Requester API with CLOB L2 credentials only; no Builder credentials; the host is pinned | Proposed |
| [0015](0015-combo-accept-path.md) | Combo Accept: the server signs the stored quote and sends it once; an unknown outcome is settled by status reads, never re-sent | Proposed |
| [0016](0016-combo-ids-and-eligibility.md) | Combo ids: the `pmc:` namespace, legs keyed by Gamma position ids, eligibility from Gamma `comboStatus` | Proposed |

## Writing a new record

* Copy the structure of an existing record: title, Status, Date, Context, Decision,
  Consequences, Alternatives considered. Keep it under about 60 lines.
* Number it with the next free four-digit number and a short kebab-case name.
* Status is one of Proposed, Accepted, or Superseded by `NNNN`. Do not edit the decision
  of an accepted record; write a new record that supersedes it.
* Add a row to the table above.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.