Skip to content

Command 1.0.0: JSON Command Interpreter (#9) - #10

Draft
LK-Simon wants to merge 19 commits into
docs/7-readme-enhancementsfrom
feature/9-json-command-interpreter
Draft

Command 1.0.0: JSON Command Interpreter (#9)#10
LK-Simon wants to merge 19 commits into
docs/7-readme-enhancementsfrom
feature/9-json-command-interpreter

Conversation

@LK-Simon

@LK-Simon LK-Simon commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Summary

Implements #9 on top of the README enhancement branch and prepares ESPressio Command 1.0.0.

Feature

  • adds representation-neutral CommandValue scalar values;
  • evolves CommandInvocation::positional / named to retain native structured scalar types;
  • preserves CommandContext::Raw() and adds CommandContext::Value();
  • adds an explicit TextCommandInterpreter facade;
  • adds optional JsonCommandInterpreter support backed by ArduinoJson 7.x;
  • supports canonical path arrays or a convenience command string, named/positional scalar values, structured JSON results, independent parsing, and machine-readable Command discovery;
  • keeps ArduinoJson out of the normal Command umbrella and required dependency graph.

Breaking interface change / version

This is prepared as 1.0.0 because the exact public types of CommandInvocation::positional and CommandInvocation::named change from string containers to CommandValue containers. Common string assignments/initializer lists remain supported, but code depending on those exact container types requires migration.

Validation

Tests cover existing textual behaviour, legacy string assignments, typed structured invocation, conversion/validation boundaries, middleware type preservation, malformed/ambiguous JSON, scalar constraints, result serialization, discovery metadata, hidden Command behavior, and existing registry/CommandLine behavior. CI also compiles the JSON adapter on ESP32 with ArduinoJson 7.4.x and retains the ESP32 Event-integration validation.

Documentation

README, full changelog, package/component version metadata and textual/graphical dependency documentation are updated for 1.0.0. The README preserves the restored/enhanced material and adds full JSON usage, discovery and 0.4.x -> 1.0.0 migration guidance.

This PR intentionally targets docs/7-readme-enhancements so feature reintegration can follow the pending documentation reintegration. Every feature commit references #9.

@LK-Simon LK-Simon changed the title JSON Command Interpreter (#9) Command 1.0.0: JSON Command Interpreter (#9) Aug 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant