Skip to content

JSON Command Interpreter #9

Description

@LK-Simon

Problem

ESPressio Command currently provides a strong transport-neutral CommandInvocation model and a text-oriented interpretation path, but structured transports such as HTTP, WebSocket, ESP-NOW, and machine-to-machine integrations must currently construct invocations themselves or flatten structured input into textual values.

JSON already carries structure and scalar type information, so treating it only as preformatted command text loses useful information and makes machine-oriented integrations less direct than they should be.

Proposed solution

Add a JSON-oriented Command interpreter alongside the existing text-oriented path, with both interpreters converging on the same transport-neutral CommandInvocation and CommandRegistry execution pipeline.

Evolve the structured invocation value model as needed so JSON scalar types can be preserved through interpretation rather than being immediately flattened to strings, while retaining existing text command behaviour and compatibility wherever practical.

Provide structured JSON results and machine-readable command discovery/schema output appropriate for programmatic consumers.

Add comprehensive automated tests covering parsing, typed values, validation, errors, compatibility with existing text invocation, result serialization, and discovery output.

Documentation must include concrete examples and be based on the current README enhancement branch.

Every related commit, PR, and discussion message must reference this issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions