At minimum, a dispatcher for method calls which also handles exceptions smartly (including defining an exception carrying JSON-RPC error data and proper adaptation to error codes.)
For MVP, localizing the error messages is out of scope and it's okay to hardcode them in English; i18n is on backlog (partially because Lumen doesn't expose it as nicely as Laravel does.) Rate limiting is a separate issue that can remain out-of-scope for MVP.
Partially depends on #2. Blocks most other items (not linked.)
At minimum, a dispatcher for method calls which also handles exceptions smartly (including defining an exception carrying JSON-RPC error data and proper adaptation to error codes.)
For MVP, localizing the error messages is out of scope and it's okay to hardcode them in English; i18n is on backlog (partially because Lumen doesn't expose it as nicely as Laravel does.) Rate limiting is a separate issue that can remain out-of-scope for MVP.
Partially depends on #2. Blocks most other items (not linked.)