Difficulty: Advanced
Problem
1. No machine-readable or human-readable contract interface documentation
docs/api-reference/ covers REST endpoints but has no documentation of the five Soroban contract function signatures, argument types, return types, or error conditions. An operator who wants to call lineproof-queue::enroll_position(identity: Address) -> u32 directly (not via the SDK) must read the Rust source code to understand the calling convention.
2. No API versioning strategy — breaking changes have no deprecation path
All backend REST routes are mounted at /api/queues, /api/enrollments, /api/escrow with no version prefix. There is no /api/v1/ namespace, no Accept: application/vnd.lineproof.v1+json header versioning, and no documented deprecation policy. Any breaking API change silently breaks existing integrations.
3. Research files in research/ are stubs — referenced from the docs but contain no actionable content
research/event-ticketing.md, research/healthcare-waitlists.md, research/product-launches.md, research/university-admissions.md, research/visa-appointment-systems.md are listed in the directory but (from prior analysis) likely contain placeholder stubs. The docs/use-cases.md references these research files as background reading but they contain no actionable technical detail.
Impact: External operators cannot integrate with contracts without reading Rust source. Breaking API changes have no warning mechanism. Research stubs undermine the project's use-case credibility.
Proposed Solution
- Create
docs/api-reference/contracts/ with one markdown file per contract documenting each function: signature, arguments with types, return type, error conditions, and example invocation.
- Add
/api/v1/ version prefix to all backend routes. Serve current routes under both /api/ (with deprecation warning) and /api/v1/.
- Document API versioning policy in
docs/api-reference/versioning.md.
- Expand research files with 3–5 concrete technical requirements per domain (e.g., healthcare: compliance constraints, visa: batch scheduling constraints).
Acceptance Criteria
Contributor Note
If assigned, your PR must show a sample contract interface doc for lineproof-queue and explain the route versioning strategy chosen (URL prefix vs header versioning) and why.
Difficulty: Advanced
Problem
1. No machine-readable or human-readable contract interface documentation
docs/api-reference/covers REST endpoints but has no documentation of the five Soroban contract function signatures, argument types, return types, or error conditions. An operator who wants to calllineproof-queue::enroll_position(identity: Address) -> u32directly (not via the SDK) must read the Rust source code to understand the calling convention.2. No API versioning strategy — breaking changes have no deprecation path
All backend REST routes are mounted at
/api/queues,/api/enrollments,/api/escrowwith no version prefix. There is no/api/v1/namespace, noAccept: application/vnd.lineproof.v1+jsonheader versioning, and no documented deprecation policy. Any breaking API change silently breaks existing integrations.3. Research files in
research/are stubs — referenced from the docs but contain no actionable contentresearch/event-ticketing.md,research/healthcare-waitlists.md,research/product-launches.md,research/university-admissions.md,research/visa-appointment-systems.mdare listed in the directory but (from prior analysis) likely contain placeholder stubs. Thedocs/use-cases.mdreferences these research files as background reading but they contain no actionable technical detail.Impact: External operators cannot integrate with contracts without reading Rust source. Breaking API changes have no warning mechanism. Research stubs undermine the project's use-case credibility.
Proposed Solution
docs/api-reference/contracts/with one markdown file per contract documenting each function: signature, arguments with types, return type, error conditions, and example invocation./api/v1/version prefix to all backend routes. Serve current routes under both/api/(with deprecation warning) and/api/v1/.docs/api-reference/versioning.md.Acceptance Criteria
docs/api-reference/contracts/lineproof-queue.mdcreated with all function signaturesdocs/api-reference/contracts/lineproof-escrow.md,enrollment.md,identity.md,factory.mdcreated/api/v1/prefix added to all backend routes/api/routes returnDeprecation: trueheader and forward to v1docs/api-reference/versioning.mdcreated with versioning policyContributor Note
If assigned, your PR must show a sample contract interface doc for
lineproof-queueand explain the route versioning strategy chosen (URL prefix vs header versioning) and why.