gamestruct v0.1
One semantic tree. Two lanes. Four primitives.
A UI that is accessible to a person using a screen reader and a UI that is accessible to a software agent are the same UI. gamestruct is the small, dependency-free contract that serves both from one description: named, role-tagged nodes with stable handles, a linear traversal, and an event stream.
# one tree, both audiences human.a11yDump(bridge) # what a screen reader reads agent.toolCatalog(bridge) # what an MCP client auto-wires await bridge.act('ui:start') # one code path