Core node acceptance

Purpose

This patch is complete when the bus-gx module exposes the library-only Core foundation through github.com/busdk/bus-gx/pkg/gx and the module checks prove the public contract.

Files

The patch initializes these public implementation files:

Path Purpose
go.mod Go module github.com/busdk/bus-gx.
pkg/gx/node.go Node, shared interfaces, VNode, and constructors.
pkg/gx/props.go Props validation and deterministic attribute rendering.
pkg/gx/render.go Deterministic escaped HTML renderer.
pkg/gx/validate.go Strict node, tag, and child validation.
pkg/gx/gx_test.go Unit tests for the v0.1.1 public contract.
tests/e2e.sh Module e2e smoke for the library-only renderer.

Checks

Run the checks from the bus-gx module root:

make fmt
make test
make lint
make check

make check formats, vets, lints, runs package tests, builds the library-only module, and runs the e2e smoke. A successful library build prints that there is no cmd/bus-gx/main.go; that is expected in this version because no bus gx CLI exists yet.

Unit tests must cover escaped text, deterministic attribute order, boolean attributes, omitted false/null props, invalid attributes, invalid tags, invalid prop values, strict kind-specific VNode validation, nil inputs, defensive VNode copies, fragment rendering, the Renderer interface, and the default RenderHTML function.